UDP服务器客户端

1. UDP的特点

UDP服务器在调用bind()函数之后就可以接受任何UDP客户端发来的数据,不需要像TCP一样建立一对一连接,UDP是面向无连接的。

2. UDP服务器客户端收发过程

 

3. sendto() 与recvfrom() 函数

1)sendto()函数,调用者为发送方

头文件:#include <sys/types.h>

       #include <sys/socket.h>

函数原型:ssize_t sendto(int sockfd, const void*buf, size_t len, int flags,

                      const struct sockaddr*dest_addr, socklen_t addrlen);

功能:向dest_addr 表示的接收方发送数据,该函数不是阻塞的,

参数:int sockfd  发送方套接字  

const void *buf   要发送的数据的地址

size_t len         发送数据的长度

int flags          通常为0

const struct sockaddr *dest_addr   接收方的ip+port

socklen_t   addrlen                地址长度

返回值:成功   实际发送字节的个数

失败   -1

2)recvfrom() 函数,调用者为接收方

头文件:#include<sys/types.h>

        #include <sys/socket.h>

函数原型:ssize_t recvfrom(intsockfd, void *buf, size_t len, int flags, structsockaddr *src_addr, socklen_t *addrlen);

功能:从发送方接收数据,该函数是阻塞函数

参数:int sockfd 接收方套接字

  void *buf  接受数据的缓冲区地址

  size_tlen  缓冲区大小

int flags    通常为0

struct sockaddr *src_addr     发送方的 ip+port

socklen_t *addrlen               

返回值:成功 实际接收的字节的个数

失败 -1

 

示例代码:

Client.c文件代码

/**********

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值