java代码编写一个socket交互
时间: 2024-01-31 08:04:14 浏览: 24
以下是一个简单的 Java Socket 交互示例:
服务器端代码:
```java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("服务器已启动,等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接,IP 地址为:" + socket.getInetAddress().getHostAddress());
// 读取客户端发送的数据
byte[] data = new byte[1024];
int len = socket.getInputStream().read(data);
String message = new String(data, 0, len);
System.out.println("收到客户端的消息:" + message);
// 向客户端发送数据
String response = "Hello, client!";
socket.getOutputStream().write(response.getBytes());
// 关闭连接
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
客户端代码:
```java
import java.io.IOException;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8080);
System.out.println("已连接服务器,IP 地址为:" + socket.getInetAddress().getHostAddress());
// 向服务器发送数据
String message = "Hello, server!";
socket.getOutputStream().write(message.getBytes());
// 读取服务器发送的数据
byte[] data = new byte[1024];
int len = socket.getInputStream().read(data);
String response = new String(data, 0, len);
System.out.println("收到服务器的消息:" + response);
// 关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个示例中,服务器启动后等待客户端连接。客户端连接后,向服务器发送一条消息,服务器收到消息后向客户端发送回复,然后关闭连接。客户端收到服务器的回复后也关闭连接。