delphi 中用tcpServer和tcpclient传输stringStram的问题

Blessed_Chuan 2008-10-19 06:08:52
我想把xml文档作为stringStram,用tcpServer和tcpclient进行传输和接收 请问具体该怎么写服务器端和接收端 而且是双向接收的 服务器接收后 也要返回给客户端信息(xml文档) 客户端也能接收的
谢谢了 急用!
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blessed_Chuan 2008-10-21
  • 打赏
  • 举报
回复
To:unsigned :
用tidtcpclient和tidtcpserver的 上面的写错了 不好意思啊
请再给我说说好么
zhongme_007 2008-10-20
  • 打赏
  • 举报
回复
接分
僵哥 2008-10-19
  • 打赏
  • 举报
回复
发送,返回值自己处理
var
strStream: TStringStream;
strSize: Integer;
begin
strStream := TStringStream.Create('some strings');
try
strSize := strStream.Size;
TcpClient1.SendBuf(strSize,sizeof(strSize),0);//记得处理返回值
strStream.Position := 0;
TcpClient1.SendStream(strStream);//记得处理返回值
finally
strStream.free;
end;
end;


接收
var
memStream: TMemoryStream;
strSize: Integer;
iRecved: Integer;
p: pchar;
begin
memStream := TMemoryStream.Create('');
try
strSize := 0;
iRecved := TcpClient1.ReceiveBuf(strSize,sizeof(strSize));
if iRecved <= 0 then raise Exception.Create('出错了');
if iRecved <> sizeof(strSize) then Raise Exception.Create('接收数据长度不正确!');
memStream.Size := strSize;
memStream.Position := 0;
p := memStream.Memory;
while strSize > 0 do
begin
iRecved := TcpClient1.ReceiveBuf(p^,strSize);
if iRecved <= 0 then raise Exception.Create('接收数据出错');
inc(p,iRecved);
dec(strSize,iRecved);
end;
ShowMessage('接收完毕!');
finally
memStream.Free;
end;
end;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧