TCP
TCP和UDP端口可以重复
TCP/IP协议中端口,范围从0到65535
TCP和UDP的区别
- TCP协议需要创建连接,UDP不需要
- TCP是可靠的协议,UDP是不可靠的
- TCP适合传输大量数据,UDP适合传输少量数据
- TCP速度慢,UDP速度快
C/S模式 client/server
B/S模式 browser/server 是一种特殊的C/S模式
Socket运行在客户端中
ServerSocket运行在服务端中
发起连接的是客户端
获取本地地址和端口号
Linux的客户端若断开连接,服务端会读取到null
Windows的客户端断开连接,服务端会抛出异常
所以finally是我们最后做处理的最佳地点
UDP
构件接收包
DatapramPacket(byte[] buf, int length)
将数据包中Length长的数据装入buf数组
DatapramPackte(byte[] buf,int offset, int length)
从offset开始,长度length数据装入buf
DatagramPacket(byte[] buf, int length, InetAddress clientAddress, int clientport)
从buf数组发给clientAddress地址的clientport端口
DatagramPacket(byte[] buf, int offset, int length, InetAddress clientAddress, int clientport)
DatagramSocket
用于接收和发送UDP的Socket实例
DatagramSocket(int port)创建实例,并监听port端口报文,通常用于服务端
receive(DatagramPacket d)
接受数据报文到d中,receive产生阻塞
客户端发送:
DatagramSocket
用于接受和发送UDP的Socket实例,
无参构造方法DatagramSocket通常用于客户端编程,并没有特定的监听端口,仅适用临时的,操作系统分配的端口
send(DatagramPacket dp)
该方法用于发送报文dp到目的地