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

解决方案 »

  1.   

    close掉connection,就可以让client端知道了。然后close完以后迅速再accept一个server socket等待下一次连接传下一个文件
      

  2.   

    楼上这样做,似乎不太好吧?.
    当client端不只一个时,那就有麻烦的哦.
      

  3.   

    加判断语句,Server发送完文件再发一个结束并开始下一个文件传送的标记,
    Client接收不是一个线程吗,至于什么标记,自己定义吧,只要两端都能认可就好。
      

  4.   

    考虑用ZIP打包  无压缩的 
    列如163网盘的打包下载用标记符会出问题的
    因为是文件 所以不能确定哪些符号是文件中不纯在的
      

  5.   

    谢谢,我是想用GZIP的.
    如果用个标记的话,使用"fileSendEnd"这样一个标记,那如果这文件,也刚好也有这字符串,那就不太好了.
      

  6.   

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