当我很快地从客户端多次发送数据时,我不会在服务器中分别接收这些数据。我收到他们作为一个大型数据突发。我需要为每个收到的数据发送回复。但是我不能这样做,因为这些数据会在一个大爆发中加入。我怎样才能发送每个收到的数据的答复? 在这里,在服务器回调方法的代码:C#接收数据的问题
private void RecieveCallback(IAsyncResult asyncResult)
{
ConnectionInfo connection = (ConnectionInfo)asyncResult.AsyncState;
try
{
int bytesRead = connection.Socket.EndReceive(asyncResult);
if (bytesRead > 0)
{
for (int i = 0; i < bytesRead; i++)
connection.FullBufferReceive.Add(connection.BufferReceive[i]);
if (bytesRead == connection.BufferReceive.Length)
{
connection.Socket.BeginReceive(connection.BufferReceive, 0, connection.BufferReceive.Length, 0,
new AsyncCallback(RecieveCallback), connection);
Console.WriteLine("Bytes recieved -- " + bytesRead + " by " + connection.Id);
}
else
{
Console.WriteLine("Bytes recieved " + bytesRead + " by " + connection.Id);
_serverController.StartProcess(connection);
}
}
else
CloseConnection(connection);
}
catch (Exception e)
{
CloseConnection(connection);
Console.WriteLine(e.ToString());
}
}
问题是?请描述该问题;) – 2011-05-05 18:07:57
客户端代码可能会更有用。也许你需要调用'.Flush()'。 – 2011-05-05 18:09:23