TcpListener tcpserver;
Socket serverSocket = tcpserver.AcceptSocket();
ここで2行目はwhile(true)
、クライアントがtcpサーバーに接続されるまで、それより下の行は実行されないという意味です。
私の問題は何ですか:このtcpserverを介して複数のクライアントを受け入れたいのですが、接続を受け入れるなどのフラグに基づいてif admin_flag is TRUE
います。そして、このフラグは別のスレッドによっていつでもトグルされます。
私はこのコードを書きます:
while (true)
{
if(admin_flag==true)
{
Socket serverSocket = tcpserver.AcceptSocket();
}
else
// do something...
}
一度実行すると、クライアントが接続されます。しかし、admin_flag
トグルされた場合、つまりfalseに設定された場合、else部分には入りません。これは、コントロールがソケットのAccepting状態のままであり、その間(TRUE)であっても他の部分を実行しないためです。
ガイドをお願いします??