したがって、非同期ソケットを設定していますが、データを読み取ったときにすべてが受信されるわけではありません。ほとんどのデータが受信される場合もあれば、受信されない場合もあります。次に、解析/処理するデータを受信しなかったため、プログラムの一部でハングします。
コード:
public static void OnArrival(IAsyncResult ar)
{
connection = (Socket)ar.AsyncState;
string data;
try
{
int bytesRead = connection.EndReceive(ar);
if (Sock.IsConnected(connection))
{
connection.BeginReceive(BufferData, 0, BufferData.Length, SocketFlags.None, new AsyncCallback(OnArrival), connection);
}
else
{
connection.Close();
}
if (bytesRead > 0)
{
data = System.Text.Encoding.ASCII.GetString(BufferData, 0, bytesRead);
HandleData.ProcessData(connection, data);
}
}
catch (Exception ex)
{
Logger.WriteError(ex.ToString());
connection.Close();
}
}
HandleData.ProcessDataが呼び出されたときに、すべてのデータが受信されるわけではありません。何か案は?