Linux-计算机网络.udp
- 开源代码
- 2025-09-14 17:54:02

1.收发函数: read()/write () ///通用文件读写,可以操作套接字。 recv(,0) /send(,0) ///TCP 常用套机字读写 recvfrom()/sendto() ///UDP 常用套接字读写
ssize_t recv(int sockfd, void *buf, size_t len, int flags); 功能:从指定的sockfd套接字中以flags方式获取长度 为len字节的数据到指定的buff内存中。 参数:sockfd 如果服务器则是accept的返回值的新fd 如果客户端则是socket的返回值旧fd buff 用来存储数据的本地内存,一般是数组或者 动态内存。 len 要获取的数据长度 flags 获取数据的方式,0 表示阻塞接受。
返回值:成功 表示接受的数据长度,一般小于等于len 失败 -1;
-------------------------------------------------------
练习: 客户端向服务器传输一个文件
2.粘包: 因为tcp本身是面向字节流的, 多次的发送数据,可能会一次接收 多次的数据会粘到一起 //怎么处理: 1.加一些分割标记 1.txt\0#include<> \n \r\n 2.指定发送消息的长度 3.自定义格式 struct msg { }; //EDID 总结: 1.客户端 服务器 模型 2.网络 + 多进程 /多线程 3.网络 + 文件
3.udp-c/s 模型
client // socket sendto //发送消息 ... close
server: socket bind recvfrom() //接收消息 ... close ssize_t send (int sockfd, const void *buf, size_t len, int flags); ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); 参数: dest_addr //要发送到的目的地址 addrlen //dest_addr的大小 ssize_t recv (int sockfd, void *buf, size_t len, int flags); ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); accept //可以获得对端的地址信息 参数: @src_addr //源地址 @addrlen //src_addr 大小---使用方式与accept中的addrlen使用方式一样
4.
Linux-计算机网络.udp由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux-计算机网络.udp”
上一篇
              1278.分割回文串III
下一篇
              消息队列与RocketMQ
 
               
               
               
               
               
               
               
   
   
   
   
   
   
   
   
   
   
   
   
   
  