socket服务端和客户端简单通信java代码
时间: 2023-08-05 18:12:52 浏览: 100
以下是一个简单的 Java Socket 服务端和客户端通信的示例代码:
服务端代码:
```
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(12345); // 创建ServerSocket对象,并指定端口号为12345
System.out.println("等待客户端连接...");
Socket socket = serverSocket.accept(); // 调用accept()方法等待客户端连接,程序阻塞在此处直到有客户端连接进来
System.out.println("客户端已连接!");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 获取输入流
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // 获取输出流
String inputLine;
while ((inputLine = in.readLine()) != null) { // 不断读取客户端输入,并将其输出到控制台
System.out.println("客户端发送的消息:" + inputLine);
out.println("服务器收到了你的消息:" + inputLine); // 将输入原样返回给客户端
}
out.close();
in.close();
socket.close();
serverSocket.close();
}
}
```
客户端代码:
```
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 12345); // 创建Socket对象,并指定连接的IP地址和端口号
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 获取输入流
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // 获取输出流
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); // 从控制台读取输入
String userInput;
while ((userInput = stdIn.readLine()) != null) { // 循环读取控制台输入,并将其发送到服务器
out.println(userInput);
System.out.println("服务器返回的消息:" + in.readLine()); // 接收服务器返回的消息并输出到控制台
}
out.close();
in.close();
stdIn.close();
socket.close();
}
}
```
以上代码仅为示例,实际使用时需要根据具体需求进行修改。
阅读全文