-1
私は、特定のポートでブラウザからの要求を聞くサーバを作成しています(例えば、http://23.10.222.151:20000/mac=0080440EEE71
)。私はブラウザのソケットを取得して、この場合はmac=2280440FFF23
という要求を確認します。そのデバイスが接続されている場合、私は見て、私が言うのページに表示したくない場合は、「デバイスを:{0}は、サーバーに登録されていません...しばらくお待ちください!」C#ソケットに書き込む
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("Connection Accepted from " + client.Client.RemoteEndPoint);
NetworkStream ClientStream = client.GetStream();
if(!devDictionary.isDevicePresent(mac))
{
Thread onRequestThread = new Thread(new ParameterizedThreadStart(OnRequesstHandler));
onRequestThread.Start(new OnRequestHandlerObject(mac, ClientStream));
String notfound = String.Format("<html><body><h1>Device: {0} has NOT registered with the Server! Please wait...</h1></body></html>", mac);
byte[] response = encoder.GetBytes(notfound);
ClientStream.Write(response, 0, response.Length);
}
スレッドがかどうかをチェックし続けますデバイスが接続されています。 yesの場合は、同じClientStreamを使用して表示されます。しかし、そのページはすぐには表示されません。それはループを維持し、デバイスが接続するとすぐに両方のページが連続して表示されます。最初のページをすぐに表示する方法は?
'ClientStream.Flush();'を試しましたか? –
はい、私はしました。仕事をしなかった... – batrulz