一、Java中TCP编程如何实现?
TCP通信的双方通常称为服务器端与客户端。
在服务器端的建立通常有如下5个步骤:
- 首先创建类java.net.ServerSocket的实例对象,注册在服务器端进行连接的端口号以及允许连接的最大客户数目。
- 调用ServerSocket的accept方法来等待并监听来自客户端的连接。当有客户端连接时,accpet方法会返回连接通道在服务器短的套接字(Socket),通过该套接字可以与客服端进行数据通信。
- 通过Socket中的getInputStream和getOutputStream方法获取该套接字所对应的输入流和输出流。
- 通过获取的输入流和输出流与客户端进行数据通信,并处理客户端发送的数据以及需要发送给客户端的数据。
- 数据通信完毕后关闭输入流、输出流、套接字。
在客户端需要如下四个步骤:
- 创建Socket实例对象,并指定主机名,端口号。
- 调用Socket成员方法getInputStream和getOutputStream获取该套接字对应的输入流和输出流。
- 通过获取的输入流和输出流与服务器端进行数据通信,并处理从服务器端接受的数据和将要发送给服务器端的数据。
- 数据通信完成后关闭输入流、输出流和套接字。
二、Java中UDP编程如何实现?
服务端/客户端基本一致。
- 创建DatagramSocket实例对象;
- 需要传输的数据会封装成DatagramPacket数据报包;
- 数据报包会通过Socket的成员方法receive,send进行接受或者发送。
数据通信结束后则会通过DatagramSocket的成员方法close关闭当前的数据报套接字。