编写一个TCP Socket程序

2025-05-21 20:39:11
推荐回答(1个)
回答1:

我看盗的时候只有21个小时了,不知道是不是还能赶的上拿分!

下边给出DELPHI的源代码!
--------client---------------------------
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
IdTCPClient1: TIdTCPClient;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if idtcpclient1.Connected then idtcpclient1.Disconnect ;
try
idtcpclient1.Host :=edit1.Text ;
idtcpclient1.Port :=strtoint(edit2.Text );
idtcpclient1.Connect;
except
showmessage('连接失败');
end;
idtcpclient1.WriteLn(edit3.Text );
edit3.Text :=idtcpclient1.ReadLn;
end;

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

end.
------------------------------------------------
----------server--------------------------------
unit Unit1;

interface

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

type
TForm1 = class(TForm)
IdTCPServer1: TIdTCPServer;
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1 : TForm1;
i:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if IdTCPServer1.Active then IdTCPServer1.Active := false;
try
IdTCPServer1.DefaultPort := strtoint(Edit1.Text);
IdTCPServer1.Active := true;
except
showmessage('启动失败');
end;

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if IdTCPServer1.Active then IdTCPServer1.Active := false;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
s : string;

begin

Memo1.Lines.Add(athread.Connection.ReadLn(s) );
ATHREAD.Connection.WriteLn(inttostr(i));
i:=i+1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
end;

end.
----------------------------------------------
winXP +delphi7编译通过!