1

Java を使用して TCP プロトコルを実装したいと考えています。私はSunのドキュメントと例を読みましたが、それらはすべてソケットを開くだけで、クライアントはサーバーが接続を受け入れるのを待ってからデータを送信します。

Java を使用して 3 ウェイ ハンドシェイクとデータ検証を実装するにはどうすればよいでしょうか。サーバーとクライアントはどのようにシーケンス番号を交換しますか? Java は、スリーウェイ ハンドシェイクを実装するためのクラス/メソッド (または少なくともインターフェイス) を提供しますか?

誰かが私にいくつかのアイデアを教えてくれますか、またはいくつかの例にリンクできますか?

前もって感謝します、

4

5 に答える 5

1

はい、可能です。JPCap などのライブラリを使用して、Java で IP レイヤーにアクセスできます。TCP 実装の残りの部分は、ユーザーが構築できます。もちろん、これは重要な作業です。

于 2011-04-12T16:41:37.940 に答える
1

TCP はすでにすべてのハンドシェークとシーケンス番号の処理を行っています。クライアントに Socket を作成し、サーバーに ServerSocket を作成して、ServerSocket からの接続を受け入れるだけです。TCP を実装する必要はありません。終わった。少し前に ;-)

于 2010-10-29T00:29:58.940 に答える
1

IP層に直接アクセスできないため、JavaでTCPを実装することはできません。Java を使用すると、トランスポート層 (TCP、UDP) で作業できますが、ネットワーク層 (IP) では作業できません。

ここでは、標準 Java ランタイム ライブラリを使用した「標準」Java について言及していることに注意してください。デバイス ドライバ レベルに至るまで、すべてに Java を使用するシステム (通常は組み込みシステム) がいくつかあります。これはあなたが求めているものではないと思いますが、念のため、組み込みシステム用に Java で書かれた完全な TCP/IP スタックへのリンクを次に示します。

http://www.jopdesign.com/ejip/index.jsp

于 2010-10-28T16:14:36.973 に答える
0

あなたの質問は完全に明確ではありません(JavaでTCPを実装できないことを知らせる他の回答を参照してください)。

しかし、あなたが望むように見えるのは、TCP 経由でプロトコルを実装することです。その場合、これまで見てきた情報が出発点として役立ちます。通信を理解したら、プロトコルの実装を開始できます。

これらのことを行い、プロトコル レベルで問題が発生した場合は、質問を (コードと共に) 投稿して、ヘルプを取得してください。

于 2010-10-28T16:30:21.793 に答える
0

Sun JDK には「生の」ソケットはありません。TCP または UDP、または TCP/UDP の上に実装されている任意のアプリケーション レベルのプロトコルにアクセスできます。それだけ。

于 2010-10-28T16:15:22.370 に答える