02. Socket简介

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).四次挥手
相关推荐
j7~12 天前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
贾伟康12 天前
【HarmonyOS 7新能力|040】QUIC长连接工程封装:把接入逻辑放进可维护的分层结构
网络编程·harmonyos·arkts·quic·软件架构
j7~14 天前
【Linux网络加餐课】(篇八)网络版计算器(终篇):守护进程、标准 IO 重定向与部署打包
linux·运维·网络编程·tcp·守护进程·io重定向·部署打包
j7~15 天前
【Linux网络加餐】(篇七)网络版计算器(中):协议落地、报文分隔与完整链路
linux·c++·网络编程·tcp·报文分割·网络计算器·协议落地
j7~15 天前
【Linux网络】三十七.TCP 协议通讯流程
linux·网络编程·三次握手·四次挥手·tcp 协议通讯流程
啦啦啦啦啦zzzz19 天前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
布莱克60520 天前
TCP 三次握手与四次挥手详解
服务器·网络·tcp/ip·计算机网络·网络编程
啦啦啦啦啦zzzz24 天前
自定义日志缓冲区(上)c++20
linux·服务器·c++·网络编程
for_ever_love__1 个月前
python爬虫: GET请求与POST请求
开发语言·爬虫·python·网络编程