文件传输粘包问题(LinuxC)

简介: 文件传输粘包问题(LinuxC)

发送方

int wlen = 0;
// buf 里面存放的是文件的内容
// size 存放文件大小的int型
// 先发送文件大小
ret = write(connfd, &size, 4);
// 在发送文件具体内容
while(1) {
   ret = write(connfd, buf+wlen, size-wlen);
   if (ret == 0) {break;}
   // printf("ret=%d\n", ret);
   wlen += ret;
}

接收方

int rlen = 0;
char buf[1024*1024];
int size = 0;
// buf 用户存放的接受到的文件内容
// size 存放文件大小的int型
// 先接收文件大小
ret = read(connfd, &size, 4);
// 在接收文件具体内容
while(1) {
   ret = read(connfd, buf+rlen, size-rlen);
   if (ret == 0) {break;}
   // printf("ret=%d\n", ret);
   rlen += ret;
}
目录
相关文章
|
3月前
|
网络协议 iOS开发 MacOS
Mac使用TCP发送信息nc -l 9000 和 telnet 127.0.0.1 9000
Mac使用TCP发送信息nc -l 9000 和 telnet 127.0.0.1 9000
40 1
|
6月前
|
存储 传感器 网络协议
通信协议缓冲区管理全景:TCP、UDP、ZMQ、DBus、SSL、SOME/IP通讯协议的缓冲区解析...
通信协议缓冲区管理全景:TCP、UDP、ZMQ、DBus、SSL、SOME/IP通讯协议的缓冲区解析...
291 0
|
网络协议 Java
java实现TCP协议文件传输
java实现TCP协议文件传输
|
机器学习/深度学习 监控 网络协议
浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用
浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用
307 0
|
网络协议 数据安全/隐私保护
FTP的和SNMP中的数据传输(知识点总结)
FTP的和SNMP中的数据传输(知识点总结)
185 0
|
网络协议 Python
python实现TCP客户端从服务器下载文件
python实现TCP客户端从服务器下载文件TCP模拟服务器 import socket def send_file_2_client(new_client_socket, client_addr): # 1.
1432 0
|
Linux
Linux rsync传输(服务端和客户端)
客户端: yum install -y rsync vi /etc/rsyncd.secrets username:password rsync -av yourfire --password-file=/etc/rsyncd.
1548 0
|
网络协议 Java 数据安全/隐私保护