最后更新:2022-07-05 10:30:34 手机定位技术交流文章
资源下载地址: https://download.csdn.net/download/sheziqiong/85897389
资源下载地址: https://download.csdn.net/download/sheziqiong/85897389
【实验名称】
开发计划署损失统计计划的设计
【实验目的】
选择一个操作系统(Linux或Windows)并创建UDP/IP通信程序来完成某些通信功能。
【实验要求】
在发送UDP包时运行循环,在一行中发送100个包;在接收器中统计丢失包。
在实验中, 运行Wireshark软件来分析通信中的数据包.
【实验原理】

以上是一般的UDP网络编程流程图,这个实验只涉及客户端发送数据和服务器接收数据,所以这个实验的现实
验流程图如下:

[实验内容]根据流程图开始编程,并分析下面的代码:
客户端代码UDP_Cli.cpp
调用库函数 socket 创捷套接字,若返回值 <0 则说明创建套接字失败,退出程序。
索克声明如下:
第一个参数指定协议群,目前支持5个协议集群,最常用的是AF_INET(IPv4协议)和AF_INET6(IPv6协议);第二个参数指定插座类型,有三个类型的插座可用: SOCK_STREAM, SOCK_DGRAM和SOCK_RAW;如果插座类型不是原始插座,第三个参数是零。在实验中使用AF_INET协议集群,SOCK_DGRAM数据消息接口,第三个参数是UDP协议。
使用Getto函数向客户端发送100个包。 如果成功,输出报告,如果失败,退出程序。
UDP使用uDP()函数发送数据。他与标准写()相似,然而,目标地址必须在h()函数中指定。第一个三个参数相当于函数 read()的第一个三个参数。旗参数是传输控制符号.指示数据将发送的协议地址的参数,它的大小由Addrlen参数指定.
它返回一个长度大于或等于0的消息,表明该消息已经成功发送,而失败返回-1。
发送后关闭插座.
服务端代码UDP_Ser.cpp
过程和客户大致相同。
创建服务器的地址数据结构,并为它配置协议群、端口号码和IP地址,然后使用绑定函数将创建的插座绑定到该地址。
使用 recvfrom函数来监测发送的数据,并输出成功接收的结果,同时使用count来积累成功接收数据包的数量。
参数解释: s: 标识连接接口的描述单词.
buf:接收数据缓冲区。缓冲区的长度。 flags:调用操作的方法。 from:指向包含源地址的缓冲区。 Fromlen:指向从缓冲区的长度值。
由于索克必须在Windows上注册,注册过程如下:

您可以看到成功的插座创建并随后发送包到目标地址。
成功发送100个包,如下图所示:

此时,服务器端上由服务器创建的插座被成功地看到,主机地址被成功地绑定,从客户端发送的数据开始连续接收,而接收的包数是统计的。

最后成功接收了100个数据包,没有数据包丢失:

同时,使用Wireshark来抓取数据包,可以看到100个UDP型数据包发送(主机地址):


您可以看到发送者IP地址(主机地址)和目的地IP地址(同样的主机地址)是,而目的地端口是66,这是这个实验中使用的端口。
在网络环境中运行客户端程序将发送100个数据包到目标地址,您可以看到每个数据包都成功发送,并且可以听到信号返回:

最后, 成功发送了100个数据包, 成功接收了100个数据包.
资源下载地址: https://download.csdn.net/download/sheziqiong/85897389
资源下载地址: https://download.csdn.net/download/sheziqiong/85897389
本文由 在线网速测试 整理编辑,转载请注明出处。