网络基础篇——socket网络编程之UDP通信
来源:互联网 发布:excel怎么算协方差矩阵 编辑:程序博客网 时间:2024/04/30 20:37
UDP和TCP的区别:
UDP是无连接的、不可靠的数据协议报,而TCP是面向连接的,提供可靠的字节流。然而,有些情况更适合用UDP而不是TCP。有些流行的应用程序就是用UDP实现的:DNS(域名系统)、NFS(网络文件系统)和SNMP(简单网络管理协议)还有就是qq也是使用的UDP。
UDP和TCP通信模型类似,只是不需要连接,具体过程如下。
1、创建socket
创建一个UDP协议的套接字socket,此时socket的第二个参数不能传递SOCK_STREAM,而是传递SOCK_DGRAM,如创建一个基于IPv4地址族的UDP套接字
sockfd = socket(AF_INET,SOCK_DGRAM,0);
2、数据收发
recvfrom和sendto通常用于UDP协议通讯的I/O
函数原型如下:
#include<sys/socket.h>ssize_t recvfrom(int sockfd,void* buff,size_t nbytes,int flags,struct sockaddr* from,socklen_t* addrlen);ssize_t sendto(int sockfd,const void* buff,size_t nbytes,const struct sockaddr* to,socklen_t addrlen);
socket_t 相当于int ,这里用这个名字为的是提高代码的自说明性。
sockfd:标识一个已连接套接口的描述字。
buf:接收数据缓冲区。
len:缓冲区长度。
flags:调用操作方式。是以下一个或者多个标志的组合体,可通过or操作连在一起:
from:(可选)指针,指向装有源地址的缓冲区。
addrlen:(可选)指针,指向from缓冲区长度值。
服务器:
客户端:
运行结果:
0 0
- 网络基础篇——socket网络编程之UDP通信
- 基于TCP/UDP的Socket网络通信系列之网络基础篇(一)
- 网络编程之udp socket
- 网络通信Socket编程基础
- Java网络编程之UDP网络通信
- socket网络通信(udp)
- socket网络通信(udp)
- 网络编程——UDP Socket
- 网络通信之Socket编程
- 网络基础篇——socket编程之TCP服务器
- Java基础——网络编程(上)之UDP
- socket网络编程udp
- 网络编程--UDP通信
- 网络编程-udp通信
- java基础之网络(UDP-Socket)
- linux网络编程之socket(UDP)
- 网络套接字socket编程之UDP
- JAVA网络编程之UDP通信演示
- struts2中上传,及注意问题
- kaldi或者eesen atlas编译失败
- 使用Gson解析json数据
- Linux命令常用之alias
- HDU-5752-Sqrt Bo-水
- 网络基础篇——socket网络编程之UDP通信
- 类之间的关系
- csu 1555 Inversion Sequence 线段树反求逆序数
- 01-shell编程hello,world
- 深入理解Java的接口和抽象类
- 79.You are working on a database that must be functioning 24 hours a day, 7 days a week. The databas
- HDU-5753-Permutation Bo
- 吐槽-使用Swing实现的第一个页面
- 陶哲轩实分析 6.2 节习题试解