Java里socket数据如何传输

avatar
作者
猴君
阅读量:0

在Java中,Socket数据传输主要涉及到两个类:java.net.Socket(用于客户端)和java.net.ServerSocket(用于服务器端)。以下是一个简单的示例,展示了如何使用这两个类进行数据传输。

服务器端

  1. 创建一个ServerSocket对象,指定要监听的端口号。
  2. 调用ServerSocket对象的accept()方法,等待客户端连接。
  3. 当客户端连接时,accept()方法返回一个新的Socket对象,用于与客户端进行通信。
  4. 使用Socket对象的输入流(getInputStream())和输出流(getOutputStream())进行数据读写。
  5. 关闭Socket对象。

客户端

  1. 创建一个Socket对象,指定服务器的IP地址和端口号。
  2. 使用Socket对象的输入流(getInputStream())和输出流(getOutputStream())进行数据读写。
  3. 关闭Socket对象。

以下是一个简单的Java Socket数据传输示例:

服务器端代码

import java.io.*; import java.net.*;  public class Server {     public static void main(String[] args) throws IOException {         int port = 12345;         ServerSocket serverSocket = new ServerSocket(port);         System.out.println("Server is listening on port " + port);          Socket socket = serverSocket.accept();         System.out.println("Client connected");          InputStream inputStream = socket.getInputStream();         BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));         String message = reader.readLine();         System.out.println("Received message: " + message);          OutputStream outputStream = socket.getOutputStream();         PrintWriter writer = new PrintWriter(outputStream, true);         writer.println("Hello from server");          socket.close();         serverSocket.close();     } } 

客户端代码

import java.io.*; import java.net.*;  public class Client {     public static void main(String[] args) throws IOException {         String serverAddress = "localhost";         int port = 12345;          Socket socket = new Socket(serverAddress, port);         System.out.println("Connected to server");          OutputStream outputStream = socket.getOutputStream();         PrintWriter writer = new PrintWriter(outputStream, true);         writer.println("Hello from client");          InputStream inputStream = socket.getInputStream();         BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));         String message = reader.readLine();         System.out.println("Received message: " + message);          socket.close();     } } 

在这个示例中,服务器监听端口12345,并在接收到客户端连接后,与客户端进行数据交换。客户端连接到服务器并发送一条消息,然后服务器回复一条消息。最后,双方都关闭了Socket连接。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!