MST
星途 面试题库

面试题:Java中Java Socket编程建立连接时客户端与服务器端的主要步骤分别是什么

在Java Socket编程里,描述客户端和服务器端为建立连接各自需要执行的主要步骤,并指出关键方法及其作用。
48.7万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

客户端

  1. 创建Socket对象
    • 关键方法Socket(String host, int port)Socket(InetAddress address, int port)
    • 作用:尝试连接到指定主机(通过主机名或IP地址)的指定端口。例如 Socket socket = new Socket("127.0.0.1", 12345);,这行代码会创建一个客户端Socket,并尝试连接到本地地址(127.0.0.1)的12345端口。
  2. 获取输入输出流
    • 关键方法getInputStream()getOutputStream()
    • 作用getInputStream() 用于获取从服务器端接收数据的输入流,getOutputStream() 用于获取向服务器端发送数据的输出流。例如,InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();,这样就可以通过输入流读取服务器发送的数据,通过输出流发送数据给服务器。
  3. 通信操作
    • 关键方法:根据输入输出流类型(如 DataInputStreamDataOutputStream 等相关类的读写方法)。例如 DataOutputStreamwriteUTF(String str) 方法用于向输出流写入UTF编码的字符串,DataInputStreamreadUTF() 方法用于从输入流读取UTF编码的字符串。
    • 作用:实现客户端与服务器端的数据交互。
  4. 关闭连接
    • 关键方法close()
    • 作用:关闭Socket连接,释放相关资源。例如 socket.close();,关闭客户端Socket,确保不再占用网络资源。

服务器端

  1. 创建ServerSocket对象
    • 关键方法ServerSocket(int port)
    • 作用:在指定端口上监听客户端的连接请求。例如 ServerSocket serverSocket = new ServerSocket(12345);,这行代码会在12345端口监听客户端连接。
  2. 接受客户端连接
    • 关键方法accept()
    • 作用:阻塞等待客户端连接,一旦有客户端连接,返回一个新的Socket对象用于与该客户端进行通信。例如 Socket clientSocket = serverSocket.accept();clientSocket 就是与连接上来的客户端进行通信的Socket。
  3. 获取输入输出流
    • 关键方法:同客户端,getInputStream()getOutputStream()
    • 作用:获取与客户端通信的输入输出流,以便读取客户端发送的数据和向客户端发送数据。
  4. 通信操作
    • 关键方法:同客户端,根据输入输出流类型(如 DataInputStreamDataOutputStream 等相关类的读写方法)。
    • 作用:实现服务器端与客户端的数据交互。
  5. 关闭连接
    • 关键方法close()
    • 作用:关闭与客户端的连接Socket和ServerSocket(如果不再需要监听新连接)。例如 clientSocket.close(); 关闭与客户端的连接,serverSocket.close(); 关闭服务器端监听的Socket。