我知道tidtcpserver会自动分配线程,但是不知道怎么来实现,希望各位能帮帮我,在没做完,就被抄鱿鱼了。

解决方案 »

  1.   

    (本人局域网内做)每个客户端发个请求,服务器端根据这个请求writestream 文件
      

  2.   

    如果想知道每个对应客户端的线程 :
    TCPServerConnect里面加:(要一个TList容器)
    list.add(AThread.Connection.Server.Bindings)
    然后操作根据indexof
      

  3.   

    Sorry,后面的 Server.Bindings 不要
      

  4.   

    我看了下例子程序,是可以的,开始声明一个 MyList : TThreadList 根据窗体创建和释放
    连接的时候:
    mylist.LockList.Add(Pointer(AThread)); //注意:后面每个有locklist的都要对应unlocklist
    mylist.UnlockList;
    断开的时候:
      mylist.LockList.Remove(Pointer(AThread));
      mylist.UnlockList;
    对多个一起发文件我没试过,提个大概
    TIdPeerThread(mylist.LockList.Items[i]).Connection.WriteStream();发文件流
    由于我每一个连接后在listbox中加入连接的用户名,所以要通过循环在listbox中找接收的用户名,对应第几个 Items[i]中的变量值,这样就实现了循环一个个发
      

  5.   

    就像在断开连接的时候删除listbox中用户名一样
      i := MyList.LockList.IndexOf(Pointer(AThread));
      MyList.UnlockList;
      MyList.LockList.Remove(Pointer(AThread));
      MyList.UnlockList;  lbxUser.Items.Delete(i);
      

  6.   

    其实多线程用FTP更好作,我就是用FTP做的,比TCP的方便多了,呵呵,TCP的我自己也折腾到现在没完全折腾好,呵呵,不过可能是因为比光传文件复杂一些