MST

星途 面试题库

面试题:Java跨平台通信协议之Socket基础

在Java中,基于Socket实现跨平台通信,简述TCP和UDP Socket编程的主要步骤有哪些不同?
34.0万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

TCP Socket编程步骤

  1. 服务器端
    • 创建ServerSocket对象,绑定指定端口。
    • 调用accept()方法监听客户端连接,返回一个Socket对象用于与客户端通信。
    • 通过Socket对象获取输入输出流,进行数据的读写操作。
    • 通信结束后,关闭SocketServerSocket
  2. 客户端
    • 创建Socket对象,指定服务器的IP地址和端口号,发起连接请求。
    • 通过Socket对象获取输入输出流,进行数据的读写操作。
    • 通信结束后,关闭Socket

UDP Socket编程步骤

  1. 服务器端
    • 创建DatagramSocket对象,绑定指定端口。
    • 创建DatagramPacket对象用于接收数据,调用receive()方法接收客户端发送的数据。
    • 处理接收到的数据。
    • 通信结束后,关闭DatagramSocket
  2. 客户端
    • 创建DatagramSocket对象,可不绑定端口(系统自动分配)。
    • 创建DatagramPacket对象,封装要发送的数据、目标IP地址和端口号。
    • 调用send()方法发送数据包。
    • 通信结束后,关闭DatagramSocket

两者主要步骤不同点

  1. 连接建立
    • TCP:服务器和客户端需要建立可靠连接,服务器通过accept()等待客户端连接,客户端主动发起连接。
    • UDP:无需建立连接,直接发送数据包。
  2. 数据传输
    • TCP:通过输入输出流进行字节流数据传输。
    • UDP:将数据封装成DatagramPacket数据包进行传输。
  3. 可靠性保证
    • TCP:有重传机制等保证数据可靠传输,顺序性好。
    • UDP:不保证数据可靠传输,可能出现丢包、乱序等情况,但传输效率相对较高。