为什么我的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.
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, 端口的设置就不起作用了。
不分分是小人。