C# 异步Socket SocketAsyncEventArgs的疑惑
我在写服务器程序时遇到个问题,没想明白。
连接后。
使用SendAsync发送
使用ReceiveAsync接收
都会响应Completed的回调,这很正常。
我的服务端程序有这样一个需求:
连接后,服务器常态应处于ReceiveAsync状态,因为这样可以捕捉到客户端关闭连接的动作。
但有时又想给客户端发送数据,使用SendAsync时,会出现“现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作。”
这可能是因为在做ReceiveAsync操作时,客户端没有发数据,没有完成操作。直接SendAsync会因为ReceiveAsync的操作没有完成而产生异常。
请问我该如何实现这种需求?
是否有方法撤销上次的ReceiveAsync操作?
------解决方案--------------------
------解决方案--------------------