博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Socket方法LAN多线程文件传输
阅读量:5884 次
发布时间:2019-06-19

本文共 629 字,大约阅读时间需要 2 分钟。

1.思维:为了实现各种文件的大小可以被发送和接收的,它可以被设置为发送和接收缓冲器环。并记录文件的位置读取,假设读入缓冲区的字节的特定数目大于缓冲区的大小较小。然后该文件被发送,退出发送周期,关闭连接。和Csocket它被阻止。收到发送端发送的全部内容,直到发送端连接关闭。接收端退出接收循环。

//循环发送文件

2.主要代码

发送端:

do
{
file.Seek(step,CFile::begin);
over=file.Read(buffer,BUFFERSIZE);//文件读入缓冲
err=sockClient.Send(buffer,over);
if( BUFFERSIZE>over )
break; //缓冲区的字节数小于缓冲区,也就是文件小于一个缓冲区,退出
step+=err; //下一次从step開始读文件

}while( true);

sockClient.close();

接收端:

while( true )

{
finish=fileListen.Receive(buffer,BUFFERSIZE);
if(0==finish)
break;//client发送连接已经关闭,发送完成
file.Write(buffer,finish);
step+=finish;//写文件的位置
}

注意:合理设置缓冲区的大小,该方法是低效率,是不是更开放的线程可以增加速度?

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
Windows Service 之 Bug 记录
查看>>
expect实现无交互操作
查看>>
出现二个奇葩bug
查看>>
【GMT43智能液晶模块】例程七:定时器PWM实验——简易电子琴
查看>>
CentOS7 yum安装、配置PostgreSQL 9.5
查看>>
js cookie介绍和实例(用于自动登录,记住用户名等)
查看>>
CSS魔法堂:display:none与visibility:hidden的恩怨情仇
查看>>
git 放弃本地修改(转)
查看>>
.NET获取服务器信息,如服务器版本、IIS等
查看>>
你能熟练使用Dictionary字典和List列表吗?
查看>>
读取Json
查看>>
关于DLL文件和EXE文件不在同一目录下的设置
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 密码强化、网络安全强化...
查看>>
web 开发之js---ajax 中的两种返回状态 xmlhttp.status和 xmlhttp.readyState
查看>>
TeX
查看>>
【Machine Learning in Action --2】K-最近邻分类
查看>>
cocos2dx3.1.1+cocosstudio+lua问题总结
查看>>
漫游Kafka设计篇之性能优化(7)
查看>>
MVC在添加控制器的时候发现没有添加的选项了?肿么办?
查看>>
Android AndroidManifest.xml配置文件
查看>>