日期:2014-05-20  浏览次数:20710 次

socket传送多个文件
刚刚学习网络编程.
请问一下socket的问题,
现在我有一个server端,一个client端.
我想server端监听client,如果监听到,则发送我的预先准备好的5个文件到client..
如果是一个文件的话,我已经写出来了,不过多文件,我就想不到了.
目前主要的困难是:
server端,不知道怎么发送完一个文件之后,告诉client端.已经发完了一个文件,让client保存,然后再接收server的第二个文件..

------解决方案--------------------
close掉connection,就可以让client端知道了。然后close完以后迅速再accept一个server socket等待下一次连接传下一个文件
------解决方案--------------------
加判断语句,Server发送完文件再发一个结束并开始下一个文件传送的标记,
Client接收不是一个线程吗,至于什么标记,自己定义吧,只要两端都能认可就好。
------解决方案--------------------
考虑用ZIP打包 无压缩的
列如163网盘的打包下载

用标记符会出问题的
因为是文件 所以不能确定哪些符号是文件中不纯在的
------解决方案--------------------
不知道有没有特定的标识符表示文件已经结束了。如果有就好办了。
------解决方案--------------------
在向Clinet发送文件前先向Clinet发送一组数据(被传送文件的文件长度,CRC32校验码)

Clinet在接收数据时实施判断已接收数据的长度,长度符合了,在用CRC32校验一下。
这样就完成了一个文件的传输,向server发送接收完毕,请求下一个传输的信号,不知这样是否就可以多个文件传了。