读书人

TCPIP服务器端向客户端发送数据为什

发布时间: 2012-02-15 12:09:44 作者: rapoo

TCPIP服务器端向客户端发送数据,为什么我这报错?
代码如下:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
mmo1: TMemo;
idtcpsrvr1: TIdTCPServer;
btn1: TButton;
btn2: TButton;
edt1: TEdit;
procedure btn1Click(Sender: TObject);
procedure idtcpsrvr1Execute(AThread: TIdPeerThread);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
FThread : TIdPeerThread;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
idtcpsrvr1.Active := True;
end;

procedure TForm1.idtcpsrvr1Execute(AThread: TIdPeerThread);
var
str: string;
begin
try
AThread.Connection.CheckForDisconnect(True,True);
str:= AThread.Connection.ReadLn();
mmo1.Lines.Add(str);
if str<>'' then
AThread.Connection.WriteLn('服务器已经相应你的消息'+str);
finally

end;
end;

procedure TForm1.btn2Click(Sender: TObject);
var
// cList: TList;
count: Integer;
str: string;
begin
str:= edt1.Text;
try
//cList := idtcpsrvr1.Threads.LockList;
// for count := 0 to cList.Count-1 do
// begin
FThread.Connection.Write(str); //每次程序执行到这里都报错。应该怎么写才可以???
finally
// idtcpsrvr1.Threads.UnlockList;
end;

end;

end.

[解决办法]

Delphi(Pascal) code
procedure TForm1.btn2Click(Sender: TObject); var   cList: TList;   count: Integer;   str: string; begin   str:= edt1.Text;   try     cList := idtcpsrvr1.Threads.LockList;     for count := 0 to cList.Count-1 do     begin       FThread := cList[count];//...      FThread.Connection.Write(str);       end;  finally     idtcpsrvr1.Threads.UnlockList;   end; end; 

读书人网 >.NET

热点推荐