TClientSocket断开问题(100分)

  • 主题发起人 主题发起人 Jar
  • 开始时间 开始时间
J

Jar

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用ClientSocket进行网络应用开发时发现这样一个问题,百思不得其解,描述如下:
1.给服务器发送这样一个:
str:=#0#0#0#16#0#0#0#6#0#0#0#0#0#0#0#15
ClientSocket.Socket.sendtext(str);
服务器作出响应,连接不断开,无论发送多少次;

2.给服务器发送这样一个串:
str:=#0#0#0'P'#0#0#0#4#0#0#0#0#0#0#0#13#0#0#0'4707'#0#1#0'8613152956155'#0#0#0#0#0#0
#0#0#0#0#30'X0201010421437E0000FF0000801EX'#0
ClientSocket.socket.sendtext(str);
服务器作出应答,传送成功,但是在应答之后,TCP连接却断开,clientsocket.active=false;
ondisconnect事件也被触发。
客户端采用的是非阻塞模式。看了sendtext的源码,其实现是调用sendbuf,在后者处理中发现
如果出错则会关断连接。可为什么前面一条不会关断连接而后一条会?是不是sendtext所发送
的串要做什么处理?

熟悉SMPP的朋友知道:第一个串也即SMPP 中的unbind命令;第二个串是一个submit命令

 
查出来了,想起了张无忌的话:TCP没有错,而是代码错了。submit组包错了。具体错误估计是熟悉SMPP的人知道。
 
后退
顶部