在 C# 类中,以下格式用于从套接字异步读取数据。
正如您在代码中看到的,它用于AsyncReceive
从套接字读取数据。OnDataReception
它在收到数据时回调。
在中,接收到的数据被处理,如果对话还没有结束,则OnDataReception
再次调用。ListenForData
此代码片段是否会创建任何类型的无限递归?(函数或线程)
class ClientConnection{
Socket socket = ...
SocketAsyncEventArgs args = ...
args.Completed += new EventHandler<SocketAsyncEventArgs>(OnDataReception);
...
public void ListenForData(){
...
socket.ReceiveAsync(args);
...
}
public void OnDataReception(Object obj, SocketAsyncEventArgs args){
...
// if conversation is finished, return
// else call ListenForData() again...
}
...
}