1>我已经完成一个网络程序用ClinetSocket和ServerSocket控件。客户端的程序(ClientSocket)安装在服务器上,服务端的程序(ServerSocket).
 安装在客户端(600台)。客户端的程序(ClientSocket)通过指定服务端的程序(ServerSocket)所在PC的IP地址与之连接,且对其进行控制。
2>我现在可以做到的是一次连接一台控制一台!我想做到的是一次连接多台,发一次命令同时执行。或者做到一次指定多个IP,然后象循环一样从第一个
     到最后一个逐步完成!
3>服务器端程序用的控件是ClientSocket ,客户端的程序用的控件是ServerSocket.(安装在600台上)。
4>ServerSocket 可以连接多个ClientSocket. 而现在ClientSocket要连接多个 ServerSocket.该如何做??

解决方案 »

  1.   

    不可能,别想了。一个clientsocket只能连接一个serversocket,一个serversocket可以同时连接多个client,在serversocket.socket.connections数组中访问!
      

  2.   

    给你一个connections的例子,
    procedure TzypNeoForm.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    var
    ii,cc,bb,dd,ll:string;
    zzz,i,j,k,z,zz:integer;
    begin
    bb:=socket.ReceiveText;
    if copy(bb,1,8)='username' then
        begin
          ii:='username';
          i:=ListView1.Items.Add.Index;
          ListView1.Items.Item[i].Caption:=IntToStr(Socket.SocketHandle);
          ListView1.Items.Item[i].SubItems.add(copy(bb,9,length(bb)));
          for z:=listview1.Items.Count-1 downto 0 do
           begin
            ii:=ii+listview1.Items.Item[z].SubItems.Text;
           end;
          for z:=serversocket1.Socket.ActiveConnections-1 downto 0 do
       begin
       serversocket1.Socket.Connections[z].SendText(ii);
       end;
        end;
    祝:身体健康,分数和参考答案同样重要:)
      

  3.   

    你的思路完全反了,怎么把serversocket用到客户端了呢, ghyghost(我要求delphi能理解我的心情) 的例子很能说明问题,serversocket是被动响应的,不能主动发东西出来,不说你现在要什么功能,你的客户端其他请求又怎么发出来呢?
      

  4.   

    To : AirFish(铁甲飞鱼) ( ) 
         你可能理解错了! 我ServerSocket在客户端,和放ClientSocket在服务端。是完全正确的! 我的意思已经在题目中说的很清楚了! To :songhtao(三十年孤独) 
        用多个TClientSocket.端口如何设置!
      

  5.   

    用多个TClientSocket,哪用设置什么本地端口?
    静态创建一定数量的或者动态创建限定数定的都行,
    使用多线程阻塞方式或者非阻塞方式都可以考虑.                     -------halfdream—-——======哈欠=====