我写了个用Socket传输文件的程序。
程序思路是这样的,从checklist中读出文件名,先传文件名、扩展名以及大小,再传文件内容;该程序可以传多个文件。一般情况下传输可以成功,但是有时会出现0KB的或1KB的文件;如果文件是1KB的话,里面内容是:文件名、扩展名、大小,即传每个文件第一次的传输信息。
有做过socket程序的给分析分析,多谢!

解决方案 »

  1.   

    什么叫“System:您的主机中的软件放弃了一个已建立的连接。”?
      

  2.   


    出现0KB的文件,有可能是你接收方的逻辑写的不太正确
    具体的socket接收代码我不太记得了,下面给你些伪代码,主要为了表示逻辑,可能参数不太正确:byte[] buffer = new byte[1024];
    int len = buffer.Length;
    len = socket.Receive(buffer, 0, len);
    while (len > 0)
    {
        fileStream.Write(buffer, 0, len);
        len = socket.Receive(buffer, 0, len);
    }估计参数不太正确,楼主自己改一下。
      

  3.   

    参考我的资源中的做法
    http://download.csdn.net/source/718224这也是应一个CSDN网友的改的,把单文件传输改为多文件传输的例子,自己看一下别人是如何处理的。