java serversocket tcp 实例
- 格式:docx
- 大小:12.43 KB
- 文档页数:3
java serversocket tcp 实例
以下是一个简单的Java TCP服务器套接字(ServerSocket)的实例。这个例子创建了一个服务器,监听8080端口,并接受来自客户端的连接。每当有新的连接时,服务器将打印出客户端的地址,并关闭连接。
java
import java.io.IOException;
import .ServerSocket;
import .Socket;
public class TCPServer {
public static void main(String[] args) {
try {
// 创建一个新的ServerSocket,监听8080端口
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("服务器已启动,正在监听8080端口...");
while (true) {
// 等待客户端的连接
Socket clientSocket = serverSocket.accept();
System.out.println("接收到新的客户端连接,来自: " +
clientSocket.getInetAddress());
// 创建一个线程处理客户端请求
new Thread(new ClientHandler(clientSocket)).start();
}
} catch (IOException e) {
e.printStackTrace(); }
}
}
class ClientHandler implements Runnable {
private final Socket clientSocket;
public ClientHandler(Socket socket) {
this.clientSocket = socket;
}
@Override
public void run() {
try {
// 获取输入流和输出流
java.io.InputStream is = clientSocket.getInputStream();
java.io.OutputStream os = clientSocket.getOutputStream();
// 读取并打印客户端发送的消息,然后回应客户端
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) != -1) {
System.out.println("收到来自客户端的消息: " + new
String(buffer, 0, length));
os.write("已收到您的消息并已处理".getBytes()); // 回应客户端
os.flush(); // 刷新输出流,确保数据被发送出去
} } catch (IOException e) {
e.printStackTrace();
} finally {
try {
clientSocket.close(); // 关闭客户端套接字
} catch (IOException e) {
e.printStackTrace();
}
}
}
}