ホームページ >Java >&#&チュートリアル >JavaでTCP送信をシミュレートするためのクライアントとサーバーのサンプルコードの詳細な説明
この記事では、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 サイトの他の関連記事を参照してください。