网络编程之 UDP
来源:互联网 发布:知乎 西窗的雨 编辑:程序博客网 时间:2024/05/01 21:29
网络编程之 UDP
1、特性: 无链接 不可靠 大数据
2、框架: C/S模式
server:socket()===>bind()===>recvfrom()===>close()
client:socket()===>bind()===>sendto() ===>close()
注意:socket()的参数需要调整。
socket(PF_INET,SOCK_DGRAM,0);
bind() 客户端是可选的,服务器端是比选的。
发送接收函数:
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr,socklen_t addrlen);
功能:用于UDP协议中向对方发送数据。
参数:sockfd 本地的套接字id
buff 本地的数据存储,一般是要发送的数据。
len 要发送的数据长度
flags 要发送数据方式,0 表示阻塞发送。
dest_addr: 必选,表示要发送到的目标主机信息结构体。
addrlen :目标地址长度。
返回值:成功 发送的数据长度
失败 -1;
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr*src_addr, socklen_t *addrlen);
功能:用于UDP协议中获取对方发送的数据。
参数:sockfd 本地的套接字id
buff 要存储数据的内存区,一般是数组或者动态内存。
len 要获取的数据长度,一般是buff的大小。
flags 获取方式,0 阻塞
src_addr 可选,表示对方的地址信息结构体,
如果为NULL,表示不关心对方地址。
addrlen 对方地址信息结构体大小。
如果对方地址是NULL,则该值也为NULL。
返回值:成功 接收到的数据长度
失败 -1;
练习:
1、根据以上知识点编写UDP测试程序,验证UDP协议的无链接性质。
2、根据UDP协议特征编写基于UDP的点对点聊天程序。
3、将以上知识点融合,考虑如何实现一个基于UDP的聊天室程序。
要求如下:
1、要有注册过程,每个客户端必须在服务器端有注册信息。
2、任意客户端发送的消息必须由服务器转发给所有在线客户端。
3、任意客户端下线必须通知其他在线用户主机。
- 网络编程之udp
- 网络编程之UDP
- 网络编程之UDP
- 网络编程之udp
- 网络编程之 UDP
- 网络编程之UDP编程
- java网络编程之UDP
- java网络编程之UDP
- 网络编程之UDP服务器
- 网络编程之UDP客户端
- unix网络编程之udp
- java网络编程之UDP
- linux之UDP网络编程
- QT 网络编程之udp
- 网络编程之UDP协议
- Linux 网络编程之UDP
- Android网络编程之UDP
- Java网络编程之UDP
- AsyncTask学习
- Glide与Picasso的区别及优缺点
- ztree 懒加载
- java parseInt和valueOf区别
- Android的眼光看IOS(一)Swift下按钮添加响应
- 网络编程之 UDP
- 懂二进制(异或的应用;注意位运算的优先,以及与运算的结果,结果不一定是 1)---2015小米暑期实习笔试题
- http 协议的优点
- Race Condition引起的性能问题
- 数据结构实验之串二:字符串匹配
- 2016年多校第5场
- Error running 'requirements_osx_brew_update_system '
- pyqt 在Widgets中显示图片和文字
- 八种排序算法 Java、Python、C++实现 -- 插入排序