2011-10-28 4 views
0

AがTCPクライアント、BがTCPサーバー、AがBに接続されていて、Aのソケットのファイルディスクリプタがfd1(A)であり、ファイルBのディスクリプタはfd2です。この時点で、プロセスAはforkされたC、Cという名前の子プロセスもfd1(A)と同じファイルテーブルを指すfd1(C)を持ちます。どのプロセスAまたはCがメッセージを受け取りますか?メッセージはfd1(A)に配信されますか?またはfd1(C)?またはランダムに?ありがとうございました。ソケットのパケットは二股に分岐しましたか?

答えて

0

メッセージは最初に読み取るプロセスに移動します。 Aがread()またはrecv()を実行しているときにCが何か他の処理を行っている場合、Aはデータを取得し、その逆も同様です。 AとCの両方が同時にread()またはrecv()を実行した場合、結果は不定です。

+0

これは正しい答えだと思います – wangshuaijie

関連する問題