MST

星途 面试题库

面试题:Java中Java Socket通信的基本工作流程

请简述在Java中,使用Socket进行通信时,服务器端和客户端的基本工作流程,包括创建Socket对象、绑定端口、监听连接、建立连接、数据传输和关闭连接等主要步骤。
44.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

服务器端基本工作流程

  1. 创建ServerSocket对象: 使用ServerSocket类创建一个对象,用于监听特定端口。例如:
ServerSocket serverSocket = new ServerSocket(12345);

这里的12345是要监听的端口号。 2. 绑定端口: 在创建ServerSocket对象时,通过构造函数传入要绑定的端口号,如上述代码中ServerSocket(12345),即将服务器绑定到12345端口。 3. 监听连接: 调用serverSocket.accept()方法,该方法会阻塞,直到有客户端连接到服务器所监听的端口。一旦有客户端连接,它会返回一个新的Socket对象用于与该客户端进行通信。例如:

Socket clientSocket = serverSocket.accept();
  1. 数据传输: 通过返回的Socket对象获取输入输出流来进行数据传输。
    • 获取输出流发送数据:
OutputStream outputStream = clientSocket.getOutputStream();
PrintWriter out = new PrintWriter(outputStream, true);
out.println("Hello, Client!");
- 获取输入流接收数据:
InputStream inputStream = clientSocket.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
String clientMessage = in.readLine();
  1. 关闭连接: 通信结束后,关闭相关流和Socket对象。
in.close();
out.close();
clientSocket.close();
serverSocket.close();

客户端基本工作流程

  1. 创建Socket对象: 使用Socket类创建一个对象,指定服务器的IP地址和端口号,尝试与服务器建立连接。例如:
Socket socket = new Socket("127.0.0.1", 12345);

这里"127.0.0.1"是服务器的IP地址,12345是服务器监听的端口号。 2. 建立连接: 在创建Socket对象时,会尝试与指定IP地址和端口号的服务器建立连接。如果连接成功,就可以进行后续通信。 3. 数据传输: 与服务器端类似,通过Socket对象获取输入输出流来进行数据传输。 - 获取输出流发送数据:

OutputStream outputStream = socket.getOutputStream();
PrintWriter out = new PrintWriter(outputStream, true);
out.println("Hello, Server!");
- 获取输入流接收数据:
InputStream inputStream = socket.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
String serverMessage = in.readLine();
  1. 关闭连接: 通信结束后,关闭相关流和Socket对象。
in.close();
out.close();
socket.close();