udp通信的原理---makefile文件
由于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:
- all: server.c client.c
- gcc -Wall client.c -o client
- gcc -Wall server.c -o server
- clean:
- rm -rf *.o client server
最新文章
- Tween Animation----Rotate旋转动画
- 1.5 STL中大小相等的概念
- WPF控件
- ACM 众数问题
- PHP - PDO 之 mysql 参数绑定
- java中-静态代码块、构造代码块、构造方法的联系
- Linux企业级项目实践之网络爬虫(3)——设计自己的网络爬虫
- Linux 下安装oracle数据库
- 状态压缩动态规划 -- 棋盘问题 POJ 1321
- Linux设置静态IP【转】
- Linux下find命令用法小结
- Java中实现多线程关键词整理
- 【chrome】 chrome 开发者工具
- Dockerfile 指令 VOLUME 介绍
- MyBatis(二):Select语句传递参数的集中方案
- Linux 学习 (七) 挂载命令 &; 用户登陆查看
- 省钱版----查找 IoT 设备TTL线序__未完待续
- IPerf——网络测试工具介绍与源码解析(5)
- 《Google Glass开发指南》
- SQL Server还原数据库
热门文章
- POJ 1094 (TopoSort)
- addresslist
- node版本管理器nvm(服务器项目相关)
- DB2技术点
- ssl_error_rx_record_too_long
- 【dom4j】解析xml为map
- ADF_Controller系列3_通过创建ADF Menu作为页面向导(Part1)
- [ActionScritp 3.0] 使用LocalConnection建立通信
- AX 2012 SSRS print setting-报表打印输出设置
- JAVA设计模式之解释器模式