用indy吧unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdTCPConnection, IdTCPClient, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls;type TForm1 = class(TForm) IdTCPServer1: TIdTCPServer; IdTCPClient1: TIdTCPClient; Button1: TButton; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure IdTCPServer1Execute(AThread: TIdPeerThread); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin self.IdTCPServer1.DefaultPort:=9999; self.IdTCPServer1.Active:=true; end;procedure TForm1.Button1Click(Sender: TObject); begin self.IdTCPClient1.Host:='127.0.0.1'; self.IdTCPClient1.Port:=9999; try self.IdTCPClient1.Connect(5000); self.IdTCPClient1.WriteLn('hello world'); self.IdTCPClient1.Disconnect; except on e:exception do memo1.Lines.Add(e.Message); end; end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var cmd: string; begin with AThread.Connection do begin cmd:= ReadLn(); memo1.Lines.Add(cmd); end; end;end.
好我试验下,不是应该两段代码么?一段是Client端的 一段是Server端的?
indy有自带的DEMO,网上可以找得到
把这两部分实现挪到一个新项目里面就是server了 //--监听端口 procedure TForm1.FormCreate(Sender: TObject); begin self.IdTCPServer1.DefaultPort:=9999; self.IdTCPServer1.Active:=true; end; //处理接收的数据 procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var cmd: string; begin with AThread.Connection do begin cmd:= ReadLn(); memo1.Lines.Add(cmd); end; end;
如果我想通过路由通过网络通讯到远程计算机的话应该怎么写? //client端 procedure TForm1.Button1Click(Sender: TObject); begin self.IdTCPClient1.Host:='127.0.0.1';//改这里就可以么? self.IdTCPClient1.Port:=9999; try self.IdTCPClient1.Connect(5000); self.IdTCPClient1.WriteLn('hello world'); self.IdTCPClient1.Disconnect; except on e:exception do memo1.Lines.Add(e.Message); end; end;//server端 procedure TForm1.FormCreate(Sender: TObject); begin self.IdTCPServer1.DefaultPort:=9999; self.IdTCPServer1.Active:=true; end; //处理接收的数据 procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var cmd: string; begin with AThread.Connection do begin cmd:= ReadLn(); memo1.Lines.Add(cmd); end; end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdTCPConnection, IdTCPClient, IdBaseComponent, IdComponent,
IdTCPServer, StdCtrls;type
TForm1 = class(TForm)
IdTCPServer1: TIdTCPServer;
IdTCPClient1: TIdTCPClient;
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
self.IdTCPServer1.DefaultPort:=9999;
self.IdTCPServer1.Active:=true;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
self.IdTCPClient1.Host:='127.0.0.1';
self.IdTCPClient1.Port:=9999;
try
self.IdTCPClient1.Connect(5000);
self.IdTCPClient1.WriteLn('hello world');
self.IdTCPClient1.Disconnect;
except
on e:exception do
memo1.Lines.Add(e.Message);
end;
end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
cmd: string;
begin
with AThread.Connection do
begin
cmd:= ReadLn();
memo1.Lines.Add(cmd);
end;
end;end.
//--监听端口
procedure TForm1.FormCreate(Sender: TObject);
begin
self.IdTCPServer1.DefaultPort:=9999;
self.IdTCPServer1.Active:=true;
end;
//处理接收的数据
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
cmd: string;
begin
with AThread.Connection do
begin
cmd:= ReadLn();
memo1.Lines.Add(cmd);
end;
end;
//client端
procedure TForm1.Button1Click(Sender: TObject);
begin
self.IdTCPClient1.Host:='127.0.0.1';//改这里就可以么?
self.IdTCPClient1.Port:=9999;
try
self.IdTCPClient1.Connect(5000);
self.IdTCPClient1.WriteLn('hello world');
self.IdTCPClient1.Disconnect;
except
on e:exception do
memo1.Lines.Add(e.Message);
end;
end;//server端
procedure TForm1.FormCreate(Sender: TObject);
begin
self.IdTCPServer1.DefaultPort:=9999;
self.IdTCPServer1.Active:=true;
end;
//处理接收的数据
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
cmd: string;
begin
with AThread.Connection do
begin
cmd:= ReadLn();
memo1.Lines.Add(cmd);
end;
end;