使用Java提供的Socket,建立客户端和服务器,编写程序,实现两者相互通信。
时间: 2024-04-08 20:35:36 浏览: 76
采用socket技术实现客户端与服务器端的通信
好的,我可以为您提供一个简单的示例代码来建立Java Socket客户端和服务器之间的通信。以下是一个基本的示例:
首先是服务器端的代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5000); // 创建服务器Socket,监听指定端口
System.out.println("服务器启动,等待客户端连接...");
Socket clientSocket = serverSocket.accept(); // 监听客户端连接请求
System.out.println("客户端已连接");
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("客户端消息: " + inputLine);
out.println("服务器收到消息: " + inputLine);
}
in.close();
out.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
然后是客户端的代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5000); // 连接到服务器的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());
}
in.close();
out.close();
stdIn.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个示例中,服务器端监听5000端口,客户端连接到服务器的IP地址和端口。客户端输入一条消息,发送给服务器,服务器收到消息后返回一条确认消息给客户端。
请注意,以上代码仅为示例,可能还需要进行错误处理和其他的改进。希望对您有所帮助!
阅读全文