ホームページ  >  記事  >  Java  >  JavaでTCP送信をシミュレートするためのクライアントとサーバーのサンプルコードの詳細な説明

JavaでTCP送信をシミュレートするためのクライアントとサーバーのサンプルコードの詳細な説明

黄舟
黄舟オリジナル
2017-03-28 10:19:271476ブラウズ

この記事では、Java で TCP 送信をシミュレートするクライアントとサーバーの例に関する関連情報を主に紹介します。必要な方は参考にしてください。1. TCP クライアントを作成します

1. TCP クライアントを作成します。 Socket オブジェクト

を使用します。オブジェクトが作成されたらすぐに宛先、つまり接続するホストを明確にすることをお勧めします。チャネルが確立されており、チャネルは一番下に確立されています。ストリームなので、入力ストリームと出力ストリームの両方が必要な場合は取得できます。これは Socket 経由で取得でき、getOutputStream() および getInputStream() を通じて取得できます。

3. 出力ストリームを使用して、Socket サービスを閉じます。

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class Client {
  public static void main(String[] args) throws IOException {

    // 1、创建客户端的Socket服务
    Socket socket = new Socket("192.168.1.100", 10002);

    // 2、获取Socket流中输入流
    OutputStream out = socket.getOutputStream();

    // 3、使用输出流将指定的数据写出去
    out.write("TCP is coming !".getBytes());

    // 4、关闭Socket服务
    socket.close();
  }
}

2. TCP 送信用のサーバーを作成します

1. ServerSocket オブジェクトを通じて TCP サーバーのソケット サービスを確立します。そうでない場合、クライアントはポートを提供できません。接続します。

3. 接続されているクライアント オブジェクトを取得します。

5. クライアント オブジェクトを介してソケット ストリームを取得し、クライアントを閉じます。サーバー。

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
  public static void main(String[] args) throws IOException {

    // 1、创建客户端对象
    ServerSocket ss = new ServerSocket(10002);

    // 2、获取连接过来的客户端对象
    Socket s = ss.accept();

    String ip = s.getInetAddress().getHostAddress();

    // 3、通过Socket对象获取输入流,读取客户端发来的数据
    InputStream in = s.getInputStream();

    byte[] buf = new byte[1024];

    int len = in.read(buf);
    String text = new String(buf, 0, len);
    System.out.println(ip + ":" + text);

  // 4、关闭资源
    s.close();
    ss.close();
  }
}

3. TCP 送信のクライアントとサーバーの最適化

このパートでは、TCP 送信モードでのクライアントとサーバーの対話機能を実現するために、最初の 2 つのパートの内容を最適化します。

/**
*优化TCP传输的客户端
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class ClientUpdate {
  public static void main(String[] args) throws IOException {

    Socket socket = new Socket("192.168.1.100", 10002);

    OutputStream out = socket.getOutputStream();

    out.write("tcp!".getBytes());

    // 读取服务端返回的数据,使用Socket读取流
    InputStream in = socket.getInputStream();
    byte[] buf = new byte[1024];

    int len = in.read(buf);

    String text = new String(buf, 0, len);

    System.out.println(text);

    socket.close();
  }
}
/**
*优化TCP传输的服务端
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerUpdate {
  public static void main(String[] args) throws IOException {

    // 1、创建服务端对象
    ServerSocket ss = new ServerSocket(10002);

    // 2、获取连接过来的客户端对象
    Socket s = ss.accept(); //accept方式为阻塞式方法

    String ip = s.getInetAddress().getHostAddress();

    // 3、通过Socket对象获取输入流,要读取客户端发来的数据
    InputStream in = s.getInputStream();

    byte[] buf = new byte[1024];

    int len = in.read(buf);
    String text = new String(buf, 0, len);
    System.out.println(ip + ":" + text);

    // 使用客户端的Socket对象的输出流给客户端返回数据
    OutputStream out = s.getOutputStream();
    out.write("收到".getBytes());

    s.close();
    ss.close();
  }
}

4. 英語大文字変換サーバーを作成します

TCP (伝送制御プロトコル、伝送制御プロトコル) の関連プロパティを適用して、TCP 送信に基づいて英語大文字変換サーバーを作成します。 クライアントは文字データを入力し、サーバーに送信し、サーバーがデータを受信した後、コンソールに表示され、クライアントが「over」を入力するまで変換が終了します。
リーリーリー

以上がJavaでTCP送信をシミュレートするためのクライアントとサーバーのサンプルコードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。