Java TCP客户端是一种基于TCP协议的客户端,它可以与服务器进行通信,以实现数据传输。TCP是一种面向连接的协议,它可以保证数据在传输过程中不会丢失,而且可以保证数据的正确性。
Java TCP客户端使用java.net.Socket类来创建TCP连接。Socket类提供了一些方法来创建、关闭、发送和接收数据。Socket类的connect()方法用于创建TCP连接,getInputStream()方法用于获取服务器发送的数据,getOutputStream()方法用于向服务器发送数据,close()方法用于关闭TCP连接。
// 创建socket对象 Socket socket = new Socket(host, port); // 连接服务器 socket.connect(); // 读取服务端数据 InputStream inputStream = socket.getInputStream(); // 向服务端写入数据 OutputStream outputStream = socket.getOutputStream(); // 关闭socket对象 socket.close();
Java TCP客户端也可以使用java.nio.channels.SocketChannel来创建TCP连接。SocketChannel是一个面向流的通道,它可以将字节流传输到其他地方。SocketChannel的open()方法用于打开一个新的套接字通道,connect()方法用于创建TCP连接,read()方法用于读取服务端发送的数据,write()方法用于向服务端写入数据,close()方法用于关闭套接字通道。
// 打开一个新的套接字通道 SocketChannel socketChannel = SocketChannel.open(); // 连接服务端 socketChannel.connect(new InetSocketAddress(host, port)); // 读取服务端数据 ByteBuffer buffer = ByteBuffer.allocate(1024); int bytesRead = socketChannel.read(buffer); // 向本地写入数Java 网络TCP客户端套接字
Java网络教程 - Java网络TCP客户端套接字
Socket
类表示一个TCP客户端套接字。以下代码显示如何创建TCP客户端套接字:
// Create Socket for 192.168.1.2 at port 1234 Socket socket = new Socket("192.168.1.2", 1234);以下代码显示如何创建未绑定的客户端套接字,绑定它并连接它。
Socket socket = new Socket(); socket.bind(new InetSocketAddress("localhost", 1234)); socket.connect(new InetSocketAddress("localhost", 1234));在连接Socket对象之后,我们可以分别使用getInputStream()和getOutputStream()方法使用其输入和输出流。
例子
以下代码显示了基于TCP套接字的Echo客户端。
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; public class Main { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", 12900); System.out.println("Started client socket at " + socket.getLocalSocketAddress()); BufferedReader socketReader = new BufferedReader(new InputStreamReader( socket.getInputStream())); BufferedWriter socketWriter = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())); BufferedReader consoleReader = new BufferedReader( new InputStreamReader(System.in)); String promptMsg = "Please enter a message (Bye to quit):"; String outMsg = null; System.out.print(promptMsg); while ((outMsg = consoleReader.readLine()) != null) { if (outMsg.equalsIgnoreCase("bye")) { break; } // Add a new line to the message to the server, // because the server reads one line at a time. socketWriter.write(outMsg); socketWriter.write("n"); socketWriter.flush(); // Read and display the message from the server String inMsg = socketReader.readLine(); System.out.println("Server: " + inMsg); System.out.println(); // Print a blank line System.out.print(promptMsg); } socket.close(); } }
JavaFX教程 -JavaFX 选择框JavaFX框允许用户在几个选项之间快速选择。创建一个选择框我们可以使用ChoiceBox中的consturctors来创...
JavaFX教程 -JavaFX 进度显示器进度指示器以动态更改饼图的形式显示JavaFX中的操作进度。以下代码显示如何使用不确定值创建Progr...
Java日期时间 -Java时钟周期时钟 Clock 类表示真实世界的时钟。我们可以从Clock类中访问时区中的当前时间,日期和时间。我们可以...
Java日期时间传统互操作性在Java 8之前,Java日期和时间由 java.util.Date , java.util.Calendar 和 java.util.TimeZone 类以及...
Java流- Java集合流来自数组的流java.util.Arrays类包含用于从数组创建顺序流的stream()方法。我们可以使用它来创建一个IntStr...