UNP读书笔记 第8章 基本UDP套接字编程

基本UDP套接字编程

1. recvform和sendto函数
这两个函数类似于read和write函数,不过需要三个额外的参数。sockfd、buff、nbytes这三个参数为描述符、指向读入或写入缓冲区的指针、和读写字节数。

2.UDP回射服务器:main函数
在这里插入图片描述
创建UDP套接字,捆绑服务器的众所周知接口。socket函数的第二个参数指定为SOCKET_DGRAM创建一个UDP套接字。
代码:
在这里插入图片描述
3.UDP回射服务器程序:dg_echo函数
在这里插入图片描述
读数据报并回射给发送者
该函数是一个简单的循环,它使用recvform读入下一个到达服务器端口的数据报,再使用sendto把它发送回发送者。

4.UDP回射客户程序:main函数
在这里插入图片描述
把服务器地址填入套接字地址结构
把服务器的ip地址和端口号填入一个IPV4的套接字地址结构。该结构将传递给dg_cli函数,已指明数据报将发往何处。

5.UDP回射客户程序:dg_cli函数
在这里插入图片描述
在这里插入图片描述
6.数据报的丢失
我们的UDP客户/服务器是不可靠的,如果一个客户数据丢失,客户永远阻塞与dg_cli函数中的recvform调用,等待一个永远不会发到服务器的应答。防止这样永远阻塞的方法就是给客户的recvfrom调用设置一个超时。

7.验证接受到的响应
验证另一个套接字地址结构,比较返回的地址。

8.UDP的connect连接

9.dg_cli函数
在这里插入图片描述
所做的修改就是调用connect,并以read和write调用代替 sendto和recvfrom调用

小结
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值