日期:2014-05-18  浏览次数:20989 次

TCP/IP传输文件问题。[附伪码]
对多台机器传输文件
C# code

public void SendFile()
{
   //循环发送
   foreach(IP地址 in 多台机器IP地址列表)
   {
      Socket.Connect(IP地址);
      FileStream.Read(要发送的文件);
      Socket.Send(FileStream To Bytes);
      Socket.close();
      FileStream.close();
   }
}
..............
//主程序中启动线程执行传输文件
Thread thread = new Thread(new ThreadStart(SendFile));
thread.Start();



目前遇到的问题是:
Socket.close()执行后,提示socket已关闭,这样第二个就传输不了了,只能向列表中的第一台传输。
关闭Socket执行,提示“文件正被使用,不能操作”。估计是第一个传输还没完成,第二个传输开始去读取文件了。
请问如何解决这个问题?谢谢!

------解决方案--------------------
大概是出在多线程问题

你要有:
第一:主控线程。
第二:监听线程。
第三:发收线程。