1.tcp是通过accpet和客户端建立连接的,建立新的描述符
cpp
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
功能:等待客户端连接
sockfd:受监听的socket描述符
addr:获取客户端的地址
addrlen:既是输入,也是输出
1、既告诉accept函数当前计算机地址结构体的字节数2、同时也能获取客户端的地址结构体字节数
返回值:连接成功返回一个新的连接后的socket描述符,连接失败返回-1
注意:如果没有连接,则阻塞
而udp不需要
直接使用函数进行数据的交换
2.函数的区别
cpp
TCP:的连接四个参数
ssize_t send(int sockfd,const void *buf, size_t len, int flags);
功能:TCP协议通信时专用的数据发送函数
sockfd:连接成功的socket描述符
buf:待发送数据的首地址
len:要发送的字节数
flags:
0 阻塞发送
1 不阻塞发送
返回值:成功发送的字节数
-1 出现错误
0 连接断开
-------------------------------------------------------------------------
UDP:6个参数,前四个一样,后两个就是dcp直接通信的地址,而tcp需要连接才能传输
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
功能:UDP协议接收数据
sockfd:socket描述符
buf:存储接收数据的缓冲区内存首地址
len:缓冲区的字节数
flags:是否阻塞 一般写0阻塞即可
src_addr:用于存储发送者的地址
addrlen:既是输入,也是输出
1、既告诉函数当前src_addr结构体的字节数
2、同时也能实际接收到发送者的地址结构体字节数
成功:成功接收到的字节数
0 通信关闭
-1 出现错误
1.tcp适合高精度的传输,这边传输那边要同意才收到,//而udp不需要,另一边同意,直接传输,不在线就收不到,但是已经传输了,
2.tcp(传输控制协议)适合网页浏览,邮件发送,连接数据库,文件传输
udo适合 适合会议视频,视频流媒体,在线游戏,语音通话,传感器数据