2.socket编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TCP和UDP的区别
1、TCP是面向链接的,TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;
2、而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
3、也正由于上面的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。

在这里插入图片描述
在这里插入图片描述
这里的sockaddr结构体: 16字节。

在这里插入图片描述
注意这里的结构体的字节数,下面要强制转换成另一个结构体。
在这里插入图片描述
在这里插入图片描述
如何填充:
在这里插入图片描述
在这里插入图片描述
int listen( int sockfd, int backlog);
sockfd:用于标识一个已捆绑未连接套接口的描述字。
backlog:等待连接队列的最大长度。

listen()为申请进入的连接建立一个后备日志,并排队等待被接受(用accept()接受连接)。这个函数特别适用于同时有多个连接请求的服务器;如果当一个连接请求到来时,队列已满,那么客户将收到一个WSAECONNREFUSED错误。

注意accept步骤上面还有个listen函数步骤。listen函数没啥难度特殊的这里不做介绍。
在这里插入图片描述
这个是客户端使用的函数: 结构体还是一样的。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
Recv等待所有用MSG-WAITALL
在这里插入图片描述
服务端close后,客户端也可以收到recv,之后退出。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值