首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

TCPIP服务器端向客户端发送数据,为什么小弟我这报错

2012-02-15 
TCPIP服务器端向客户端发送数据,为什么我这报错?代码如下:unit Unit1interfaceusesWindows, Messages, Sy

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; 

热点排行