0

試験で以下の質問がありました。

「クライアントにUDPを使用したいと仮定しましょう.UDPで並列接続を管理するために新しいソケットを作成する必要がありますか?なぜですか?複数のクライアントがそのソケットに接続するとどうなりますか?」

TCPServer.javaこの質問は、ServerSocket を作成し、後でwhile(true)ループ内で接続を受け入れ、ユーザーからの着信接続要求用のソケットを作成する Java クラスも参照しました。

私の考えでは、TCP サーバーは TCP 接続にのみ使用されるため、UDP クライアントに同じサーバー側のコードを使用することはできません。

4

2 に答える 2

2

あなたは正しい方向に進んでいます。

ServerSocketsはTCP接続に使用されます。DatagramSockets(まだコネクションレス型)はUDPに使用されます。

そして、他の部分、つまり「複数のクライアントがそのソケットに接続するとどうなるか」に答えます。答えは次のとおりです。

  1. UDPの場合は、コネクションレス型なので問題ありません。
  2. TCPの場合、ServerSocketは接続要求を確認し、そのクライアントとの双方向通信用に新しいソケットを作成する必要があります

「なぜまたはなぜそうではないか」に答えるために-UDPはコネクションレス型であるため、新しいソケットは通信に使用されません。UDPはDatagramPacketを受信し、それをドロップするか(アプリが無効、不正な形式などであると判断した場合)、またはDatagramPacketで応答します。UDPには、接続、接続状態、および入出力ストリームはありません。

于 2011-09-22T21:32:46.627 に答える
0

質問では、なぜ、またはなぜそうではないのかを説明するように求められました。したがって、本質的に、ServerSocketコードがUDPで機能すると信じていなかった場合は、その理由を言わなければなりませんでした。あなたの最後の文から、あなたは質問への答えを知っていると思います、今あなたは自信を持ってそれを書き留める必要があります。

于 2011-09-22T21:33:38.230 に答える