1

私のプログラムは、プロセス間通信にソケットを使用します。TCP クライアントのリストが接続されるのを待っている localhost のソケット ポート (B) でリッスンしているサーバーが 1 つあります。サーバーのもう一方の端には、データをインターネットに送信する別のソケット(A)があります。サーバーは、TCP クライアントから送信されたすべてのものを受け取り、インターネット上のサーバーに転送するように設計されています。私の質問は、2 つの TCP クライアントがたまたま同時にデータを送信した場合、これはサーバーの送信ソケット (A) にとって問題になるのでしょうか?

ありがとう

4

2 に答える 2

2

MSDN ドキュメントでは、複数のスレッドが同じソケットを使用してデータを送信する場合はBeginSend、を使用することをお勧めします。EndSend

したがって、これらのメソッドを使用するか、送信データを同期キューに書き込むことをお勧めします。同期されたキューから、単一のスレッドがキューからデータを取得し、socket(A) 経由で送信します。

于 2010-04-30T17:35:05.037 に答える
1

複数のクライアント ストリームのトラフィックを単一の送信ストリームに多重化する方法については説明していません。クライアント トラフィックのチャンクを任意にストリームに入れるだけでは、動作が保証されません。インターチューブの反対側の受信側は、どのバイトがどの会話に属しているかわかりません。

最初に反対側に集中することをお勧めします。そこにあるマシンは何か、それは何をするのか、ローカル エンドの複数のクライアントについて何を知る必要があるのか​​。

于 2010-04-30T18:53:35.663 に答える