我用Delphi里的TCPServer/TCPClient控件编写了一个简单的发送信息的程序,服务器端负责接收并且显示客户端发送过来的数据,而客户端只负责发送任务,但是有个问题,只有第一次发送信息之后,服务器端才会显示接收到的信息,如果再发就不显示了。
下面是服务器端的代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,IdStack, StdCtrls, Sockets;type
TForm1 = class(TForm)
TcpServer1: TTcpServer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Label3.Caption := TcpServer1.LocalHost;
Label4.Caption := TcpServer1.LocalPort;
TcpServer1.Active := True;
Memo1.Clear;
end;procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s : String;
begin
s := ClientSocket.Receiveln();
Memo1.Lines.Add(s);
end;end.下面是客户端程序:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets;type
TForm1 = class(TForm)
TcpClient1: TTcpClient;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Label3.Caption := TcpClient1.RemoteHost;
Label4.Caption := TcpClient1.RemotePort;
TcpClient1.Active := True;
Memo1.Clear;
end;//发送信息
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
r : String;
begin
s := Edit1.Text;
TcpClient1.Sendln(s);
r := TcpClient1.Receiveln();
Memo1.Lines.Add(r);
end;end.
请各位大侠帮我这个Delphi初学者解决一下,拜托!
下面是服务器端的代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,IdStack, StdCtrls, Sockets;type
TForm1 = class(TForm)
TcpServer1: TTcpServer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Label3.Caption := TcpServer1.LocalHost;
Label4.Caption := TcpServer1.LocalPort;
TcpServer1.Active := True;
Memo1.Clear;
end;procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s : String;
begin
s := ClientSocket.Receiveln();
Memo1.Lines.Add(s);
end;end.下面是客户端程序:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets;type
TForm1 = class(TForm)
TcpClient1: TTcpClient;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Label3.Caption := TcpClient1.RemoteHost;
Label4.Caption := TcpClient1.RemotePort;
TcpClient1.Active := True;
Memo1.Clear;
end;//发送信息
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
r : String;
begin
s := Edit1.Text;
TcpClient1.Sendln(s);
r := TcpClient1.Receiveln();
Memo1.Lines.Add(r);
end;end.
请各位大侠帮我这个Delphi初学者解决一下,拜托!
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
begin
TcpClient1.Active:= true;
s := Edit1.Text;
TcpClient1.Sendln(s);
TcpClient1.Active:= false;
end;