服务器:
(1)新建socket
(2)绑定bind
(3)等待客户端发信息过来 recvfrom
(4)可以获取到客户端的地址信息之后,大家就可以互相通讯了。
(5)通讯结束之后,关闭连接。
客户机:
(1)新建socket
(2)初始化好地址结构体
(3)直接发送:sendto
(4)等待服务器回信:recvfrom
(5)通讯结束之后,关闭连接
Udp与tcp的通讯类似。具体操作参考上一博客内容:https://blog.csdn.net/qq_37589838/article/details/81321108
其中:sendfo函数参数配置如下:
sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);
第一个参数:是前面socket函数返回的fd。代表我们要和对应的客户端进行通讯。
第二个参数:是我们要发送或者接收的buffer对应的地址。
第三个参数:对应是我们要读取或者写入的数据按字节计算的长度。
第四个参数:一般都是0;
第五个参数:这个是我们要将数据发送到哪里?这个就是接收方的地址。这个参数一定要指定。
第六个参数:就是前面这个地址的长度。
返回值:成功的话,返回值的大小代表实际发送的字节数。这个返回值,和count不一定相等。如果出错的话,返回-1;
recvfrom参数配置详情可在Linux下通过 man recvform 来查看