ServerSocket 和 ClientSocket 问题。
在ClientSocket 显示和服务器连接成功,可是我通过SerberSocket.socket.sendtext时,却提示说:由于套接字没有连接并且(当使用一个sendto,调用发送数据报套接字时)没有提供地址,发送或接受数据的请求没有被接受。 可是我在ClientSocket端设置的连接,已经连接成功了,为什么直接用SerberSocket.socket发送消息不能发送出去,为什么呀??能不能给我解决一下呀??

解决方案 »

  1.   

    具体代码?你的CLIENT没有连接上;也许你需要CLIENTSOCKET。OPEN;
      

  2.   

    for i:=0 to ServerSocket1.Socket.ActiveConnections do
    begin
      ServerSocket1.Socket.Connections[i].SendText('abcd')
    end;
      

  3.   

    ServerSocket 端 代码:
       serversocket1.Active:=true;
       serversocket1.Open;
      serversocket1.Socket.SendText('getscreen');
    ClientSocket 端 代码:
       with ClientSocket do
          begin
             try
               Host :='218.59.97.136';
               Active := True;
               clientsocket.Socket.Lock;        finally
             end;
          end;有问题吗??
      

  4.   

    TO wly033(城市流浪人) 
     
      测试时: ServerSocket1.Socket.ActiveConnections =0 怎么弄??
      

  5.   

    private
        { Private declarations }
      public
        { Public declarations }
      protected
        IsServer: Boolean;
      end;var
      Form1: TForm1;
      Server: String;
    implementation{$R *.dfm}procedure TForm1.BitBtn2Click(Sender: TObject);
    begin
      ClientSocket1.Active := False;
      ServerSocket1.Active := False;
      close;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      ClientSocket1.Active := False;
      ServerSocket1.Active := True;
      Statusbar1.Panels[0].Text := 'Listening...';
    end;procedure TForm1.BitBtn3Click(Sender: TObject);
    begin
      if ClientSocket1.Active then
      begin
        ClientSocket1.Active := False;
      end;
      if InputQuery('计算机连接到', '要连接的计算机的IP地址或者计算机名:', Server) then
        if Length(Server) > 0 then
        begin
          ClientSocket1.Host := Server;
          ClientSocket1.Active := True;
       end;
    end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_Return then
      begin
        if IsServer then
        begin
           ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines.Text)
        end
        else
        begin
           ClientSocket1.Socket.SendText(Memo1.Lines.Text);
        end;
      end;
    end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      IsServer := True;
      Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress;
    end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      Memo2.Lines.Add(Socket.ReceiveText);
    end;procedure TForm1.ClientSocket1Read(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      Memo2.Lines.Add(Socket.ReceiveText);
    end;
    procedure TForm1.BitBtn4Click(Sender: TObject);
    begin
      ClientSocket1.Active := False;
      ServerSocket1.Active := False;
    end;end.
      

  6.   

    ServerSocket1.Socket.Connections[0].SendText() 有问题 出现错误:
      List index out of bounds(0)