Java Socket通信:客户端和服务器端实例
在Java中,Socket通信是建立客户端与服务器端双向通信的一种方式。下面我会提供一个简单的客户端和服务端实例。
- 客户端(ServerThread.java):
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerThread implements Runnable {
private ServerSocket serverSocket;
public ServerThread(int port) {
try {
serverSocket = new ServerSocket(port);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try (Socket clientSocket = serverSocket.accept()) {
System.out.println("New client socket : " + clientSocket);
// 在这里可以实现读写等通信操作
String messageFromClient = "Message from Client";
clientSocket.getOutputStream().write(messageFromClient.getBytes()));
System.out.println("Sent message to client : " + messageFromClient);
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
int port = 1234; // 请替换为实际使用的端口
ServerThread serverThread = new ServerThread(port);
Thread thread = new Thread(serverThread);
thread.start();
System.out.println("Server is running on port : " + port);
}
}
- 服务器端(Client.java):
import java.io.*;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
String serverAddress = "localhost"; // 请替换为实际服务器地址
int serverPort = 1234; // 请替换为实际使用的端口
Socket socket = new Socket(serverAddress, serverPort));
System.out.println("Connected to Server on port : " + serverPort);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
String clientMessage = "Hello from Client!";
out.write(clientMessage.getBytes());
System.out.println("Sent message to Server : " + clientMessage);
// 读取服务器响应
String responseFromServer = in.readLine();
System.out.println("Received response from Server: " + responseFromServer);
socket.close();
}
}
以上代码实现了客户端向服务器发送消息,以及接收服务器的响应的功能。记得在实际使用时替换localhost
和1234
为你的服务器地址和端口号。
还没有评论,来说两句吧...