通信流程:
服务端
1.创建套接字
2.为套接字绑定地址信息(ip+port)
3.接收数据
4.发送数据
5.关闭套接字
客户端
1.创建套接字
2.发送数据(客户端一般让os随机分配合适的端口)
3.接受数据
4.关闭套接字
接口
创建套接字
socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
第一个参数代表地址域:IPV4地址
第二个参数代表套接字类型:面向数据报的
第三个参数是协议类型:udp
返回值:成功返回套接字描述符,失败返回-1
为套接字绑定地址
bind(sockid, &addr, len)
第一个参数是套接字描述符(操作句柄)
第二个参数是要绑定的地址信息
第三个参数是地址信息长度
返回值:成功返回0,失败返回-1
接受数据(来自谁的数据)
recvfrom(sockid, buf, len ,0, &saddr, &len)
第一个参数是套接字描述符
第二个参数是接受的数据放在那
第三个参数是期望接受的数据长度
第四个参数0表示阻塞接受数据
第五个参数是接受来自谁的数据(发送方的地址信息)
第六个参数是接受发送方的地址信息长度(输入、输出型参数,不但要指定期望接受多长,还要返回实际接受的长度)
返回值:成功返回实际接受数据长度,失败返回-1
发送数据(发给谁的)
sendto(sockid, buf, len, 0, &daddr, len)