文件传输粘包问题(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
34 1
|
4月前
|
网络协议 网络性能优化
用udp协议传输文件
【7月更文挑战第18天】使用 UDP 协议传输文件 UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输协议。尽管它不像 TCP 那样提供可靠的传输和拥塞控制,但在某些特定场景下,例如对实时性要求较高、能容忍一定数据丢失的情况,也可以用于文件传输。
|
5月前
|
网络协议 算法 Linux
技术笔记:Linux学习:TCP粘包问题
技术笔记:Linux学习:TCP粘包问题
41 0
|
网络协议 Java
java实现TCP协议文件传输
java实现TCP协议文件传输
|
缓存 网络协议 安全
CentOS7下使用TCP over TLS方式安全传输远程主机系统日志
CentOS7下使用TCP over TLS方式安全传输远程主机系统日志
358 0
CentOS7下使用TCP over TLS方式安全传输远程主机系统日志
|
网络安全
04-rsync传输与ssh传输的区别
rsync传输与ssh传输的区别
170 0
04-rsync传输与ssh传输的区别
|
Linux
Linux rsync传输(服务端和客户端)
客户端: yum install -y rsync vi /etc/rsyncd.secrets username:password rsync -av yourfire --password-file=/etc/rsyncd.
1537 0
|
网络协议 Java 数据安全/隐私保护