サーバーが4つ以上-25バイトのパケットをクライアントに送信する場合、最初の2つだけがクライアントによって処理されます。クライアントでイベント選択を使用しており、サーバーで送信しています。エラーはありませんが、最初の2つのパケットのみが表示されます。前もって感謝します。
1 に答える
3
あなたのコードを見ずに、私はあなたが見落としているかもしれない1つの問題しか考えることができません、
TCPがストリームベースのプロトコルであるという点を見逃しているかもしれません。クライアントから送信関数を10回呼び出してデータを送信する場合、受信側で受信関数を10回呼び出す必要はありません。すべてのデータは、1回の受信または5回または8回または12回の受信で取得される可能性があります。つまり、パケットの形でそれを見ようとしないでください。パケットを識別するには、自分でフレーミングを行う必要があります。
それぞれ25バイトの4つのパケットを送信する場合。合計は100バイトのデータです。受信側では、50バイトのパケットを2つ取得している可能性があり、開始マーカーと終了マーカーなどを使用してパケットを自分で識別する必要があります。
100バイトの単一パケットまたは10バイトの10パケットを取得することもできます。心に留めておきます。
于 2011-04-11T07:19:44.980 に答える