0

我正在使用套接字侦听器从客户端接收数据。

while (true)服务器侦听连接时 是否可以替换无限循环?

// 监听传入的连接。
        尝试
        {
            listener.Bind(localEndPoint);
            listener.Listen(10);

// Start listening for connections. while (true)//infinite loop { }

4

1 回答 1

5

假设您的 while 循环如下所示:

while(true)
{
    Socket workerSocket = listener.Accept();
    DoSomethingWithSocket(workerSocket);
}

那么是的,替换while(true)

listener.BeginAccept(new AsyncCallback(OnClientConnect), null);

然后添加一个方法

 public void OnClientConnect(IAsyncResult asyn)
 {

    Socket workerSocket = Listener.EndAccept(asyn);
    Listener.BeginAccept(new AsyncCallback(OnClientConnect), null);
    DoSomethingWithSocket(workerSocket);
 }
于 2013-04-02T11:28:43.153 回答