嗨堆栈溢出成员。我正在为一些简单的代码而苦苦挣扎,但我无法完成它。我有这个等待连接的异步服务器。
while (clientSocket.Connected)
{
try
{
clientSocket.BeginReceive(so.buffer, 0, 200, SocketFlags.None
, new AsyncCallback(wait),so);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
所以(简称StateObject)是我的班级:
internal class StateObject
{
public TcpClient client;
public byte[] buffer;
public StateObject()
{
buffer = new byte[200];
client = new TcpClient();
}
}
我使用这个类来输出回调函数的信息。但是我明白了the system lacked sufficient buffer space or because a queue was full
。我从实际程序中发布了一小段。一个有趣的问题是,如果我写:
while (clientSocket.Connected)
{
try
{
byte[] buffer = new byte[200];
clientSocket.BeginReceive(buffer, 0, 200, SocketFlags.None
, new AsyncCallback(wait),so);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
它会工作,但我将无法从异步函数中拉出缓冲区(等待)。我正在为此苦苦挣扎,我找不到答案。