文件传输粘包问题(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;
}
目录
相关文章
|
5天前
|
监控 网络协议 安全
使用 Scapy 库编写 TCP FIN 洪水脚本
使用 Scapy 库编写 TCP FIN 洪水脚本
|
2月前
|
安全 网络协议 Shell
什么是 SFTP 协议
什么是 SFTP 协议
|
8月前
|
网络协议 Java
java实现TCP协议文件传输
java实现TCP协议文件传输
|
网络安全
04-rsync传输与ssh传输的区别
rsync传输与ssh传输的区别
157 0
04-rsync传输与ssh传输的区别
|
Linux
Linux rsync传输(服务端和客户端)
客户端: yum install -y rsync vi /etc/rsyncd.secrets username:password rsync -av yourfire --password-file=/etc/rsyncd.
1301 0
|
网络协议 Java 数据安全/隐私保护
|
NoSQL Linux 网络安全