12.udp
12.udp
**1. UDP特性** **2. UDP编程框架(C/S模式)** **3. UDP发送接收函数** **4. UDP编程练习**
1. UDP特性
连接特性 :无链接,通信前无需像TCP那样建立连接。可靠性 :不可靠,不保证数据按序到达、不保证数据无丢失或重复。数据传输 :适合传输大数据,但实际传输受网络MTU等因素限制。
2. UDP编程框架(C/S模式)
服务器端流程 :
创建套接字 :调用socket()
函数,参数为(PF_INET,SOCK_DGRAM,0)
。绑定地址 :使用bind()
函数,绑定服务器地址和端口,此步骤为必选。接收数据 :通过recvfrom()
函数接收客户端发送的数据。关闭套接字 :通信结束后,调用close()
函数关闭套接字。 客户端流程 :
创建套接字 :同样调用socket(PF_INET,SOCK_DGRAM,0)
。绑定地址 :bind()
函数为可选操作,若需要固定客户端端口则绑定。发送数据 :利用sendto()
函数向服务器发送数据。关闭套接字 :完成通信后,用close()
关闭套接字。
3. UDP发送接收函数
sendto函数 :
功能 :用于UDP协议中向对方发送数据。参数 :
sockfd
:本地的套接字id。buf
:本地的数据存储,一般是要发送的数据。len
:要发送的数据长度。flags
:发送数据方式,0表示阻塞发送。dest_addr
:必选,表示要发送到的目标主机信息结构体。addrlen
:目标地址长度。 返回值 :成功返回发送的数据长度,失败返回 -1。 recvfrom函数 :
功能 :用于UDP协议中获取对方发送的数据。参数 :
sockfd
:本地的套接字id。buf
:要存储数据的内存区,一般是数组或者动态内存。len
:要获取的数据长度,一般是buf
的大小。flags
:获取方式,0表示阻塞。src_addr
:可选,表示对方的地址信息结构体,如果为NULL
,表示不关心对方地址。addrlen
:对方地址信息结构体大小,如果src_addr
是NULL
,则该值也为NULL
。 返回值 :成功返回接收到的数据长度,失败返回 -1。
4. UDP编程练习
验证UDP无链接性质的测试程序 :编写程序,在未建立类似TCP连接的情况下,实现UDP数据的发送和接收,验证UDP无需预先连接即可通信的特性。基于UDP的点对点聊天程序 :利用UDP的发送和接收函数,实现两个端点之间的实时消息交互功能。基于UDP的聊天室程序 :
注册过程 :每个客户端在服务器端进行注册,服务器记录客户端信息。消息转发 :服务器接收任意客户端发送的消息,并将其转发给所有在线客户端。下线通知 :当任意客户端下线时,服务器负责通知其他在线用户主机。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2289729.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!