通过 UDP 套接字编程实验,掌握网络套接字的构成,掌握 UDP 的通信特点, 理解面向无连接的通信方式;实现基于 UDP 的服务器/客户端通信过程。
能够连接网络的计算机一台;高级程序设计软件如 Visual C++ 6.0 / Code Blocks / DevCPP。
UDP使用IP提供无连接的不可靠但效率高的传输服务。UDP比TCP 简单得多。UDP适用于一次传输少量信息的情况。它的可靠性由上层的应 用程序提供。UDP的价值在于其效率高,当底层通信子网相当可靠时,就更 为适宜。
源 IP 地址与端口号的组合或目的 IP 地址与端口号的组合套接字是一种软件抽象,用于表示两台机器之间的连接终端,套接字(Socket)大致位于OSI模型的会话层、TCP/IP模型的应用层,每一台机器都有一个套接字,可以想象成套接字是机器的端口,他们之间都有一条虚拟的电缆,电缆的每一段都插入到套接字中,也就是说一台机器上的套接字可以和另一台机器上的套接字组成一条通信通道,我们可以用这个通道在两台机器之间发送数据。UDP的套接字是由二元组标识的,即IP地址与端口号。当两个套接字具有相同的目的IP与目的端口号,那么他们将被定向到同一个socket。源端口号和源IP的作用是用来区分返回地址。而TCP的套接字是由四元组标识的
服务器端: 客户端: 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。
服务器 客户端
通过编写 UDP 套接字程序,采用 C 程序设计语言,实现 UDP 的服务器/客户端相互之间数据的传送与接收。 (1)、编写程序时,在创建套接字 socket 时,采用socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) 函数,函数的三个参数分别表示:Socket 的地址域,分为 unix(AF_UNIX,表示 unix 系统的两个进程可以通信)和 Internet(AF_INET,表示 Internet 上的任意两台主机可以通信);Socket 的类型,UDP 是数据报形式,DGRAM,而 TCP |
UDP套接字编程
最新推荐文章于 2024-06-09 09:45:24 发布