简述
面向连接服务(TCP)的主要特点有:
- 数据传输必须经过建立、维护和释放三个阶段
- 在传输过程中,个分组不需要携带目的主机的地址
- 可靠性好,但协议复杂,通信效率不高
面向无连接服务(UDP)的主要特点:
- 不需要连接的各个阶段
- 各个分组要携带完整的目的主机地址,在系统中独立传送
- 由于没有顺序控制,所以接收方的分组可能出现乱序,重复和丢失现象
- 通信效率高,但不能确保可靠性
Socket类的基本使用
Socket类的创建
Socket类的构造函数原型为:
public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType)
对于常规IP通信,AddressFamily只能使用AddressFamily、InetNetwork、SocketType参数需要和ProtocolType配合使用
套接字的组合方式
SocketType | ProtocolType | 说明 |
---|---|---|
Dgram | Udp | 无连接的通信 |
Stream | Tcp | 面向连接的通信 |
Raw | Icmp | 基于ICMP协议的通信 |
Raw | Raw | 简单IP包的通信 |
流式套接字的创建实例
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
数据报套接字的创建实例
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
原始套接字的创建实例
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);
这里要注意学习socket的常用属性,通过这些可以