我使用 SocketAsyncEventArgs 构建了一个小型 Socket 服务器端。但是遇到一些问题,当我接受客户端套接字时,我尝试使用 e.AcceptSocket.ReceiveAsync 接收客户端信息,但我不知道为什么它总是对我显示 True。这是服务器端:
private void ProcessAccept(SocketAsyncEventArgs e)
{
Console.WriteLine("Process Accept!");
if (e.BytesTransferred > 0)
{
Console.WriteLine("client online...");
}
SocketAsyncEventArgs readEventArgs = new SocketAsyncEventArgs();
readEventArgs.AcceptSocket = e.AcceptSocket;
readEventArgs.SetBuffer(new byte[1024], 0, 1024);
readEventArgs.Completed+=readEventArgsIO_Completed;
Boolean willRaiseEvent = e.AcceptSocket.ReceiveAsync(readEventArgs);
if (!willRaiseEvent)
{
this.ProcessReceive(readEventArgs);
}
this.StartAccept(e);
}
我的客户端仅使用 Connect 方法连接服务器端并向其发送信息“Hello Server”。但为什么我在这里总是得到“真”?
Boolean willRaiseEvent = e.AcceptSocket.ReceiveAsync(readEventArgs);
谢谢。