Java网络编程:客户端Socket连接问题实例
在Java的网络编程中,客户端通过Socket建立与服务器的连接。以下是一个实例,演示了如何使用Java的Socket类创建客户端:
- 创建ServerSocket(服务器端监听)
import java.io.ServerSocket;
public class Server {
private static final int PORT = 8080; // 设置端口
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(PORT); // 开启服务器端监听
System.out.println("Server is listening on port " + PORT);
// 监听客户端连接
while (true) {
Socket clientSocket = serverSocket.accept(); // 接受客户端的连接请求
System.out.println("Client connected from address : " + clientSocket.getRemoteSocketAddress()));
// 这里你可以处理客户端数据,例如接收消息然后发送回应等
// 关闭客户端连接
clientSocket.close();
}
}
}
- 创建Socket(客户端连接服务器)
import java.io.Socket;
public class Client {
private static final String SERVER_ADDRESS = "localhost"; // 服务器地址
private static final int PORT = 8080; // 服务器端口
public static void main(String[] args) throws Exception {
Socket socket = new Socket(SERVER_ADDRESS, PORT)); // 创建Socket并连接到服务器
System.out.println("Connected to server at address : " + socket.getRemoteSocketAddress()));
// 发送消息
String message = "Hello Server!";
socket.getOutputStream().write(message.getBytes()); // 写入数据到Socket的输出流
// 接收服务器回应
byte[] responseBytes = new byte[1024]; // 用于接收回应的数据缓冲区
int bytesReceived = socket.getInputStream().read(responseBytes)); // 读取并存储到缓冲区中的字节数
System.out.println("Server replied with message : " + new String(responseBytes, 0, bytesReceived)));
// 关闭Socket连接
socket.close();
}
}
以上代码示例实现了客户端通过Socket向服务器发送消息并接收回应的过程。如果你需要处理更复杂的情况,如多线程并发处理等,请告诉我具体需求,我会给出相应的解决方案。
还没有评论,来说两句吧...