【发布时间】:2011-02-23 15:25:48
【问题描述】:
我一直在编写一个基于CodeProject 的套接字服务器,它本身源自原始的Microsoft example。
在这两种情况下,入站消息都会使用相同的 SocketAsyncEventArgs 立即返回给发送者。 在我的情况下,我需要在回复客户端之前发送入站消息以进行进一步的异步处理。
问题在于,返回的响应可能会尝试同时使用相同的 SocketAsyncEventArgs 作为来自客户端的进一步消息。 发生这种情况时,我会收到此异常:
"An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance"
所以,(我相信)我需要一个单独的 SocketAsyncEventArgs 池来处理返回的消息。到目前为止一切都可以理解。
我的问题是我不确定如何创建出站 SocketAsyncEventArgs,因为它与入站密切相关。
我可以重复使用多少入站数据?例如如果我只是指向同一个AcceptSocket,消息同时双向传输会不会有问题?
有没有人有一些如何从入站导出出站 SocketAsyncEventArgs 的示例代码? 还是我没抓住重点?
【问题讨论】: