面试题答案
一键面试TCP Socket编程步骤
- 服务器端
- 创建
ServerSocket
对象,绑定指定端口。 - 调用
accept()
方法监听客户端连接,返回一个Socket
对象用于与客户端通信。 - 通过
Socket
对象获取输入输出流,进行数据的读写操作。 - 通信结束后,关闭
Socket
和ServerSocket
。
- 创建
- 客户端
- 创建
Socket
对象,指定服务器的IP地址和端口号,发起连接请求。 - 通过
Socket
对象获取输入输出流,进行数据的读写操作。 - 通信结束后,关闭
Socket
。
- 创建
UDP Socket编程步骤
- 服务器端
- 创建
DatagramSocket
对象,绑定指定端口。 - 创建
DatagramPacket
对象用于接收数据,调用receive()
方法接收客户端发送的数据。 - 处理接收到的数据。
- 通信结束后,关闭
DatagramSocket
。
- 创建
- 客户端
- 创建
DatagramSocket
对象,可不绑定端口(系统自动分配)。 - 创建
DatagramPacket
对象,封装要发送的数据、目标IP地址和端口号。 - 调用
send()
方法发送数据包。 - 通信结束后,关闭
DatagramSocket
。
- 创建
两者主要步骤不同点
- 连接建立
- TCP:服务器和客户端需要建立可靠连接,服务器通过
accept()
等待客户端连接,客户端主动发起连接。 - UDP:无需建立连接,直接发送数据包。
- TCP:服务器和客户端需要建立可靠连接,服务器通过
- 数据传输
- TCP:通过输入输出流进行字节流数据传输。
- UDP:将数据封装成
DatagramPacket
数据包进行传输。
- 可靠性保证
- TCP:有重传机制等保证数据可靠传输,顺序性好。
- UDP:不保证数据可靠传输,可能出现丢包、乱序等情况,但传输效率相对较高。