任何好的教程/示例带有线程池代码的异步套接字并允许发送或接收多次?
我尝试了Microsoft示例异步服务器示例和异步客户端示例,它只允许接收或发送一次然后结束会话。http://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx我不知道如何允许多次接收或发送数据。
我想要做的是服务器&客户端验证过程,使用签名和AES,验证客户端是真正的客户端,服务器是真正的服务器。
这是我计划执行的以下验证步骤
答案 0 :(得分:0)
我认为你描述的协议可以自己实现,但是在从套接字发送和接收数据方面,有一个来自Stephen Toub的article创建了一个允许轻松发送的SocketAwaitable
/异步接收数据。
从文章中你可以这样使用它:
static async Task ReadAsync(Socket s)
{
// Reusable SocketAsyncEventArgs and awaitable wrapper
var args = new SocketAsyncEventArgs();
args.SetBuffer(new byte[0x1000], 0, 0x1000);
var awaitable = new SocketAwaitable(args);
// Do processing, continually receiving from the socket
while (true)
{
await s.ReceiveAsync(awaitable);
int bytesRead = args.BytesTransferred;
if (bytesRead <= 0) break;
/* Process bytes read here */
}
}