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.