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.   

    连接一个serversocket,然后断开,再连接另一个serversocket
    或者用多线程,每个线程创建一个clientsocket,然后分别和对应的serversocket连接
      

  3.   

    用ServerSocket和ClientSocket不行
    用UDP吧
    也可以都用 hehe^^ 保正完成任务
      

  4.   

    多起几个client端程序就可以了
      

  5.   

    使服务器对客户端通信?udp吧,不是需要连接每个客户端的数据库吧?
    断开,然后指定另一个socketserver端口.
      

  6.   

    用UDP的广播方式吧
    比如你的LAN中有100台机子,IP是从X.X.X.2到X.X.X.102那么在其中一台要发送命令的机子上进行广播,而LAN中其它机子则根据广播收到的信息进行响应,就可以了。以下只列出主要代码,(一个CLIENTSOCKET,一个SERVERSOCKET,一个NMUDP,在每个程序里都要有,这样这个程序就既是SERVER,又是CLIENT)procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      Send : TMemoryStream;
      StrSend : string;
    begin
      NMUDP1.RemotePort := 6001;
      NMUDP1.LocalPort := 6001;
      NMUDP1.RemoteHost := 'x.x.x.255' //这里的IP是根据你自己的改变
      strSend := Edit1.Text;   //这里用个EDIT控件来记录你要发送的内容
      Send := TMemoryStream.Create;
      Send.Write(StrSend[1],Length(StrSend));
      NMUDP1.SendStream(Send);
    end;procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
      NumberBytes: Integer; FromIP: String; Port: Integer);
    var
      Recv : TMemoryStream;
      StrRecv : string;
    begin
      Recv := TMemoryStream;
      SetLength(StrRecv,NumberBytes);
      NMUDP1.ReadStream(Recv);
      Recv.Read(StrRecv[1],NumberBytes);
      Memo1.Lines.Add('有消息来自'+FromIP); //这里的MEMO控件用来显示收到的内容
      Memo1.Lines.Add('内容是:'+strrecv);
    end;用C/S控件连接过程略,你应该知道怎么写了吧