替换TCP Listner套接字C#中的无限循环

Ano*_*rba 0 .net c# sockets

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

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

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

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

Run Code Online (Sandbox Code Playgroud)

Jam*_*ass 5

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

while(true)
{
    Socket workerSocket = listener.Accept();
    DoSomethingWithSocket(workerSocket);
}
Run Code Online (Sandbox Code Playgroud)

然后是,替换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);
 }
Run Code Online (Sandbox Code Playgroud)