全部“可用积分”送上,求教,关于 IdTCPServer1 和 IdTCPClient1 的使用 ( 积分: 0 )

  • 主题发起人 主题发起人 SuKiDelphi
  • 开始时间 开始时间
S

SuKiDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
请到这里拿分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3681306
 
晕, 现在发觉,

procedure TMyClient.Button1Click(Sender: TObject);
var
CommBlock: TCommBlock;
begin
with IdTCPClient1 do
begin
try
WriteLn('info'); // 通知服务器
/ 想写到服务器去
// 这里想写的格式是: TStringList, 试了一晚, 写不了"TStringList"
//WriteBuffer (CommBlock, SizeOf (CommBlock), true);
except
end;
end;
end;

还请再帮一帮!!!!
 
Indy10支持StringList的写入。
 
type TArr = array of Byte;


// Client
begin
IdTCPClient.WriteLn('ARR');
IdTCPClient.WriteCardinal(Length(Arr));
IdTCPClient.WriteBuffer(Arr, Length(Arr) * sizeof(Byte));
end;

// Server
var
...
Command : String;
Len: Cardinal;
begin
Command := AThread.Connection.ReadLn;
if Command = 'ARR' then
begin
Len := AThread.Connection.ReadCardinal;
if Len > 0 then
begin
SetLength(Arr, Len);
AThread.Connection.ReadBuffer(Arr, sizeof(Byte) * Len);
end;
end;
end;
 
谢谢, 我试试!!!
 
可以将数据MOVE至流中,发出去,不过INDY10好像支持TSTRINGLIST
 
谢谢你!!!!
 
不过INDY10好像支持TSTRINGLIST

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);


[Error] Unit1.pas(12): Undeclared identifier: 'TIdContext'
 
在uses语句上加入IdContext的引用。Indy10里面几乎是一个类一个单元。类找不到就用这个类的名字做单元名uses一下就可以了
 
Indy10支持StringList的写入。

谢谢你!!!!
 
接受答案了.
 
后退
顶部