時々奇妙な問題が発生します。接続してデータを送信する同期ソケットがあります。
do
{
try
{
// blocking
int bytesRead = sender.Receive(bytesReceived);
// process the received bytes
}
catch (SocketException soex)
{
throw new Exception(String.Format("Socket exception..." +Environment.NewLine+"[Code: {0}] {1}",soex.ErrorCode,soex.Message));
}
}
while (sender.Poll(1500, SelectMode.SelectRead) && sender.Available > 0);
ブロックされているため、Receive に永遠にとどまりたくありません。そのため、パケットがネットワークに到達する時間を取得するための応答を待機する時間でポーリングを行い、Available とともに、私は実際のデータがなくなると壊れる可能性があります。
私が得ている問題は、(do-while で) while が false を返すことです。番号を取得します。
何か案が?私は困惑しています。