设为首页 加入收藏

TOP

Linux下的UDP通信
2014-11-24 12:31:34 来源: 作者: 【 】 浏览:0
Tags:Linux UDP 通信

由于UDP通信不需要事先建立连接,因此不需要TCP中的connect函数。


服务器端的步骤如下:


1. socket: 建立一个socket


2. bind: 将这个socket绑定在某个端口上(AF_INET)


3. recvfrom: 如果没有客户端发起请求,则会阻塞在这个函数里


4. close: 通信完成后关闭socket




客户端的步骤如下:


1. socket: 建立一个socket


2. sendto: 相服务器的某个端口发起请求(AF_INET)



3. close: 通信完成后关闭socket


可以看到,和TCP相比,步骤少了一些。




这里我们用到了两个新的函数:


int recvfrom(int sockfd, void * buf, size_t len, int flags, struct sockaddr * src_addr, socklen_t * addrlen);


int sendto(int sockfd, const void * buf, size_t len, int flags, const struct sockaddr * dest_addr, socklen_t addrlen);




recvfrom用于接收数据,sendto用于发送数据




recvfrom:


socket:socket套接字


buf:接收到的数据的存放位置


flags:一般情况下为0


src_addr:接收的源地址


addrlen:地址长度





sendto:


socket:socket套接字


buf:要发送的数据的起始地址


flags:一般情况下为0


dest_addr:发送到的目的地址


addrlen:地址长度



还是先上代码:


Makefile:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下的TCP通信 下一篇Android中PopupWindow自定义坐标..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)