我想写一个TcpServer和TcpClient通信的例子,现在连接都有问题,同一台机器上。
Server:procedure TForm1.FormCreate(Sender: TObject);
begin
  IdTCPServer1.DefaultPort := 9001;
  IdTCPServer1.Active := True;
end;
Client:procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.IdTCPClient1.Host := '127.0.0.1';
  Self.IdTCPClient1.Port := 9001;
  try
    IdTCPClient1.Connect;
  except on E: Exception do
    showmessage(E.Message);
  end;
end;
可是在客户单连接时会报错:“Socket error # 10061 Connection refused”。
我不知道哪里出了问题。

解决方案 »

  1.   

    不好意思,眼花看错了...端口在IdTCPServer1的bindings属性里面设置,要绑定ip的我这里实验过,没有问题
      

  2.   

    我也用过bindings方法,问题还是一样的,难道是我写法有问题?你能否把这个写法贴出来啊?
      

  3.   

    用的就是你的代码啊.
    只不过在idTCPServer1里bind了127.0.0.1:9001用单步调试,看看你的FormCreate确定运行了吗?
      

  4.   


    procedure TForm1.FormCreate(Sender: TObject);
    var
      Binding: TIdSocketHandle;
    begin
      Self.IdTCPServer1.Bindings.Clear;
      Binding := Self.IdTCPServer1.Bindings.Add;
      Binding.IP := '127.0.0.1';
      Binding.Port := 9001;
      Self.IdTCPServer1.Active := True;
    end;我这么写也不行啊,也报同样的错误,而且跟踪了,确实执行了这段代码
      

  5.   

    我只直接在IdTCPServer1上设置bind的,不过应该一样的...我这里运行是好的,在IdTCPServer1的onconnect事件里写的代码也可以正确响应.要不你换个端口...或者看看是不是防火墙的原因.....