Java网络编程客户端与服务器端交互示例
在Java中,进行网络编程客户端与服务器端的交互通常涉及到Socket通信。以下是一个简单的示例:
- 客户端(ServerThread.java):
```java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerThread extends Thread {
private ServerSocket serverSocket;
public ServerThread(int port) {
this.serverSocket = new ServerSocket(port);
}
@Override
public void run() {
try {
Socket clientSocket = serverSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))));
PrintWriter outToClient =
new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()))));
String messageFromClient;
while ((messageFromClient = inFromClient.readLine()) != null)) {
System.out.println("Received from client: " + messageFromClient);
// 简单处理,这里可以发送回复或执行其他操作
outToClient.println("Message received, sending response...");
}
} catch (IOException e) {
System.err.println(e.getMessage());
try {
serverSocket.close();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}
}
2. 服务器(Server.java):
```java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private static final int PORT = 1234;
public static void main(String[] args) throws IOException {
new ServerThread(PORT).start();
// 这里可以添加其他等待客户端连接的操作
System.out.println("Server is waiting for client connections...");
}
}
以上示例中,服务器端创建一个ServerSocket监听1234端口。当有客户端连接时,服务器会接受这个Socket并进行交互。
注意:在实际开发环境中,请确保服务端的防火墙规则允许该端口的通信。
还没有评论,来说两句吧...