●●●(第四帖了)关于远程控制IDTCPServer方面的问题

zsgbox 2005-12-29 11:58:43
因为以前只做数据库,现在突然让做网络远程控制,活还很急,来不及一点点学,压力太大,所以麻烦大家了
//------------------------------------------------------------------------------
我用TCPServer发送还有一些问题,见下面的三帖,有空的朋友帮看看
听大伙说,IDTCPServer挺好,我试了一样,可水平太菜,搞不定,麻烦大家了,指点一下吧
TIDTCPServer
的OnExecute事件中
void __fastcall TMainForm::IdTCPServer1Execute(TIdPeerThread *AThread)
{
Msg *curMsg;
TMemoryStream *Stream = new TMemoryStream();
snapscreen(curMsg,Stream);//截图
AThread->Connection->OpenWriteBuffer(-1);
AThread->Connection->WriteStream(Stream,true,false);
AThread->Connection->CloseWriteBuffer();
delete Stream;
Stream=NULL;
AThread->Connection->Disconnect();
}
可我想一会传一个结构过去里面一些特殊命令,一会传一个内存流过去,我怎么区分,接收端又怎么区分
TIDTCPClient控件中
怎么自动感知服务端传过来的数据,是onWorK吗?
我这样写可以读出来吗,可我写在哪呢,写在onWorK好象读不出来
IdTCPClient->ReadStream(stream,-1,true);
Image->Picture->Graphic->LoadFromStream(stream);
麻烦大家了
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
constantine 2005-12-29
  • 打赏
  • 举报
回复
首先定义一个head的struct,

struct Headmsg
{
int type;
}
然后,定义其他数据类型,
再把,Headmsg 这个结构体跟其他的结构体合起来形成新的struct
发送过去,接受的时候可以先按Headmsg接收,判断是什么类型的数据
然后接收后面的部分,这样就可以了。
不过如果是要传送文件,我还是建议不要跟原来的合在一起,我不知道你的情况是怎么样的
有的情况并不好控制,最好分开
zsgbox 2005-12-29
  • 打赏
  • 举报
回复
不太明白,按我的理解来说,服务端向客户端发数据,客户端应该有一个事件能够感知,然后我再启动一个线程去接收,您的意思是写一个线程去一直监听接收函数吗?不太明白,能不能给个您现成的例子,非常感谢!如果您有的话请发到zsgbox@gmail.com,或者zsgbox@163.com
constantine 2005-12-29
  • 打赏
  • 举报
回复
自己写一个线程,然后在线程里面调用接收函数,可以考虑用XXXbuffer版本的
不管流什么的最好统一一定的格式,这样用这个函数就可以很好接收了
zsgbox 2005-12-29
  • 打赏
  • 举报
回复
大侠,那其它问题呢?指点一下吧.

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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