套接字接受方法id like while为真
本文关键字:like while 为真 id 方法 套接字 | 更新日期: 2023-09-27 18:07:58
TcpListener tcpserver;
Socket serverSocket = tcpserver.AcceptSocket();
这里的第二行就像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时,它不会进入其他部分,这是因为控件保持在接受状态插座&不执行其他部分,即使它是while(TRUE)。
请指导? ?
AcceptSocket
是一个阻塞方法调用,这意味着它将阻塞正在执行的线程,直到它可以接受传入的连接。如果没有与侦听器建立连接,则调用将继续无限阻塞。
例如,您必须停止侦听器或切换到使用非阻塞BeginAcceptSocket
或AcceptSocketAsync
方法异步接受连接。