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();

}

}

}

}