Socket java服务端代码
时间: 2023-12-07 11:50:20 浏览: 77
以下是一个简单的 Java Socket 服务端代码示例:
```java
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8888); // 监听端口号为8888
} catch (IOException e) {
System.err.println("Could not listen on port: 8888.");
System.exit(1);
}
Socket clientSocket = null;
System.out.println("Waiting for connection...");
try {
clientSocket = serverSocket.accept(); // 等待客户端连接
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
System.out.println("Connection successful!");
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) { // 不断接收客户端发送的消息
System.out.println("Received message: " + inputLine);
out.println("Server received message: " + inputLine); // 回复客户端
if (inputLine.equals("Bye.")) // 如果客户端发送了 "Bye.",则退出循环
break;
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
说明:
1. 该服务端代码创建了一个 ServerSocket 对象,并监听端口号为 8888。
2. 通过调用 `accept()` 方法等待客户端的连接请求,一旦收到请求,则返回一个 Socket 对象,该对象与客户端的 Socket 对象连接起来。
3. 利用该 Socket 对象获取输入流和输出流,并通过输入流接收客户端发送的消息,通过输出流发送消息给客户端。
4. 循环接收客户端发送的消息,如果客户端发送了 "Bye.",则退出循环。
5. 最后关闭输入流、输出流、客户端 Socket 对象和服务端 ServerSocket 对象。