1.Socket简介
2.Socket常用属性和方法
3.三次握手和四次挥手在Socket的体现
1.Socket简介
csharp
1).它是C#提供给我们用于网络通信的一个类
a.类名: Socket
b.命名空间: System.Net.Sockets
2).Socket s = new Socket()
a.AddressFamily: 网络寻址枚举类型, 决定寻址方案
- InterNetwork IPv4寻址
- InterNetwork6 IPv6寻址
b.SocketType: 套接字枚举类型,决定使用的套接字类型
- Dgram支持数据报, 最大长度固定的无连接、不可靠的消息(主要用于UDP通信)
- Stream支持可靠、双向、基于连接的字节流(主要用于TCP通信)
c.ProtocolType: 协议类型枚举类型,决定套接字使用的通信协议
- TCP传输控制协议
- UDP用户数据报协议
3).参数的常用搭配
a.UDP协议通信: SocketType.Dgram + ProtocolType.Udp
b.TCP协议通信: SocketType.Stream + ProtocolType.Tcp
2.Socket常用属性和方法
csharp
1).常用属性
a.socket.Connected: 套接字状态
b.socket.SocketType: 获取套接字的类型
c.socket.ProtocolType: 获取套接字的协议类型
d.socket.AddressFamily: 获取套接字的寻址方案
e.socket.Available: 从网络中获取准备读取的数据数据量
f.socket.LocalEndPoint: 获取本机EndPoint对象
g.socket.RemoteEndPoint: 获取远程EndPoint对象
csharp
2).Socket常用方法
a.服务端绑定IP和端口
IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080);
socket.Bind(ipPoint);
b.服务器设置客户端连接请求队列中的数目
socket.Listen(10);
c.服务器等待客户端连入
socket.Accept();
d.客户端链接远程服务器
socket.Connect(IPAddress.Parse("118.12.123.11"), 8080);
e.主动关闭套接字的读写通信通道的方法, 而非直接销毁套接字资源(先与Close调用)
socket.Shutdown

csharp
f.关闭连接, 释放所有Socket关联资源
socketTcp.Close();

3.三次握手和四次挥手在Socket的体现
csharp
1).三次握手的体现

csharp
2).四次挥手
