java socket客户端服务端
时间: 2024-09-05 14:01:09 浏览: 43
Java中的Socket编程是网络编程的基础,它允许在不同主机上的程序之间进行通信。Socket通信涉及客户端(Client)和服务器端(Server)两个部分,它们通过网络套接字(Socket)进行数据交换。
服务器端通常需要以下几个步骤来实现:
1. 创建ServerSocket实例并监听一个端口。
2. 等待客户端的连接请求。
3. 接受连接请求,创建Socket实例用于和客户端通信。
4. 通过输入输出流(InputStream和OutputStream)读写数据。
5. 关闭Socket连接。
6. 关闭ServerSocket监听。
客户端通常需要以下几个步骤来实现:
1. 创建Socket实例,指定服务器的IP地址和端口号。
2. 连接到服务器。
3. 通过输入输出流(InputStream和OutputStream)读写数据。
4. 关闭Socket连接。
以下是一个简单的Socket通信示例代码框架:
服务器端(Server):
```java
import java.io.*;
import java.net.*;
public class EchoServer {
public static void main(String[] args) throws IOException {
int port = 1234; // 服务器监听的端口号
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("服务器正在监听端口:" + port);
try {
while (true) {
Socket clientSocket = serverSocket.accept();
System.out.println("接受到来自 " + clientSocket.getInetAddress().getHostAddress() + " 的连接");
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();
}
} finally {
serverSocket.close();
}
}
}
```
客户端(Client):
```java
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) throws IOException {
String serverAddress = "127.0.0.1"; // 服务器IP地址
int port = 1234; // 服务器端口号
Socket socket = new Socket(serverAddress, port);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
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();
stdIn.close();
out.close();
socket.close();
}
}
```
注意:在实际的网络编程中,要考虑到异常处理、线程使用(如在多线程环境下同时处理多个客户端连接)、资源管理等问题。
阅读全文