读书人

idtelnet-gt;sendcmd freeze the form解

发布时间: 2012-03-07 09:13:51 作者: rapoo

idtelnet->sendcmd freeze the form
我是新手,如果问题太简单,也请大家批评指正啦!

我的问题是,idtelnet连接到idtcpcmdserver的时候,使用sendcmd会使程序死在哪里,而用sendch则不会:

idTelnet1-> SendCmd(cmd, -1); //程序死在这里

//--------------------
char* s = cmd.c_str();
char* t = s;

while (*t != '\n ') {
IdTelnet1-> SendCh(*t); //okay, 没问题。
t++;
}

看了看Indy in Depth, SendCmd会调用GetResponse,虽然服务器的回复不会如想象般快地到达。但程序还是会因为SendCmd而死在哪里。
那我应该怎么用SendCmd?把它放到线程里去吗?

[解决办法]
窗体上放一个TIdAntiFreeze试试

另外TIdTelnet里的SendCmd是从TIdTCPConnection里继承来的,也就是说你用这个发给服务器的信息是 "原码 "而不是Telnet协议的信息,so 只能用SendCh.

读书人网 >C++ Builder

热点推荐