首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为什么小弟我的IdTCPClient连接成功了,IdTCPServer却没有任何反应?

2012-12-30 
为什么我的IdTCPClient连接成功了,IdTCPServer却没有任何反应??这是我的程序代码,点击BuTTON1后“client co

为什么我的IdTCPClient连接成功了,IdTCPServer却没有任何反应??
这是我的程序代码,  点击BuTTON1后“client connected”的提示窗口是弹了出来的,但是“server connected”的窗口没有弹出来,并且点击Button2的时候,memo1里没有出现任何消息........这是怎么回事??

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdTCPConnection,
  IdTCPClient, StdCtrls;

type
  TForm1 = class(TForm)
    IdTCPServer1: TIdTCPServer;
    Button1: TButton;
    IdTCPClient1: TIdTCPClient;
    Button2: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    procedure idtcpserverconnect(AThread: TIdPeerThread);
    procedure Button1Click(Sender: TObject);
    procedure idtcpclientconnected(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure idtcpserverexcute(AThread: TIdPeerThread);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.idtcpserverconnect(AThread: TIdPeerThread);
begin
  showmessage('server connected!');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if idtcpclient1.Connected then
    idtcpclient1.Disconnect;
  idtcpclient1.Connect;
end;

procedure TForm1.idtcpclientconnected(Sender: TObject);
begin
  showmessage('client connected!');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  idtcpclient1.WriteLn(edit1.Text);
end;

procedure TForm1.idtcpserverexcute(AThread: TIdPeerThread);
begin
  memo1.Lines.Add(athread.Connection.ReadString(255));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with idtcpclient1 do
    begin
      boundport:=1818;
      host:='127.0.0.1';
      port:=1818;
    end;

  with idtcpserver1 do
    begin
       active:=true;
       bindings.Add.Port:=1818;
       bindings.Add.IP:='127.0.0.1';
       defaultport:=1818;
    end;


end;

end.

[解决办法]
procedure TForm1.FormCreate(Sender: TObject); 
begin  
  with idtcpclient1 do begin      
    boundport:=1818;       
    host:='127.0.0.1';       
    port:=1818;     
  end;     


  with idtcpserver1 do begin       
    bindings.Add.Port:=1818;        
    bindings.Add.IP:='127.0.0.1';        
    defaultport:=1818;     
    active:=true;        
  end;     
end; 
[解决办法]
with idtcpserver1 do
    begin
       
       bindings.Add.Port:=1818;
       bindings.Add.IP:='127.0.0.1';
       defaultport:=1818;
      active:=true;  //要在这里。
    end;
 active:=true; 是开启服务。
你先开启了,倾听的ip, 端口的设置就不起作用了。

不分分是小人。

热点排行