标签:socket传文件 文件循环传输 局域网传文件 socket编程
1.思路:为了实现各种大小的文件都可发送和接收,可设置缓冲区循环发送和接收,并记录文件读到的位置,如果某次读入到缓冲区的字节数小于缓冲区的大小,则说明文件发送完了,退出发送循环,关闭连接。并且Csocket是阻塞的,接收端接能接收到发送端发送的所有内容,直到发送端连接关闭,接收端退出接收循环。
//循环发送文件
2.主要代码
发送端:
do}while( true);
sockClient.close();
接收端:
while( true
)
{
finish=fileListen.Receive(buffer,BUFFERSIZE);
if(0==finish)
break;//客户端发送连接已经关闭,发送完毕
file.Write(buffer,finish);
step+=finish;//写文件的位置
}
注意:合理设置缓冲区大小,此方法效率较低,是不是多开线程能加快速度?
标签:socket传文件 文件循环传输 局域网传文件 socket编程
原文地址:http://blog.csdn.net/songzige/article/details/41279061