在Java中,建立Socket连接主要包括两个步骤:服务器端创建ServerSocket对象并监听指定端口,客户端创建Socket对象并连接到服务器的IP地址和端口。以下是一个简单的示例:
服务器端代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
int port = 12345; // 服务器监听的端口号
ServerSocket serverSocket = new ServerSocket(port); // 创建ServerSocket对象
System.out.println("服务器已启动,正在监听端口:" + port);
Socket socket = serverSocket.accept(); // 等待客户端连接
System.out.println("客户端已连接:" + socket.getInetAddress());
InputStream inputStream = socket.getInputStream(); // 获取客户端发送的数据流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String message;
while ((message = bufferedReader.readLine()) != null) {
System.out.println("收到客户端消息:" + message);
}
socket.close(); // 关闭Socket连接
serverSocket.close(); // 关闭ServerSocket对象
}
}
客户端代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
String serverAddress = "localhost"; // 服务器IP地址
int port = 12345; // 服务器监听的端口号
Socket socket = new Socket(serverAddress, port); // 创建Socket对象并连接到服务器
System.out.println("已连接到服务器:" + serverAddress + ":" + port);
OutputStream outputStream = socket.getOutputStream(); // 获取服务器发送的数据流
PrintWriter printWriter = new PrintWriter(outputStream, true);
String message = "你好,服务器!";
printWriter.println(message); // 向服务器发送消息
System.out.println("已发送消息:" + message);
socket.close(); // 关闭Socket连接
}
}
在这个示例中,服务器端创建了一个ServerSocket对象并监听12345端口。当客户端连接到服务器时,服务器会接收到客户端的消息并在控制台输出。客户端创建一个Socket对象并连接到服务器的IP地址和端口,然后向服务器发送一条消息。