ClientSocket和IdTCPClient组件发送字符串的问题

对牛乱弹琴 2012-03-19 11:48:41
这个问题百度真的搜不到,没办法,只能来提问了,麻烦大家帮忙看一下。

首先ClientSocket,我用SendText和SendBuf方法给PLC发送字符串,提示连接成功,但是最多只能发送9个(就是9个)字符,无论是一次发一个(发第十次被强制关闭),还是一个发3个(第四次关闭),或者一次发9个(第2次关闭)。

就是说超过9个字符,PLC就强制关闭连接了。


然后用IdTCPClient,用Write和WriteLn方法。提示连接成功后,write方法跟上述情况一样;WriteLn方法最多只能发送3个(这次是3个)字符,就被PLC关闭了,

大家遇到过这种情况吗?怎么回事呢?

另:我用串口连接,完全正常。就是用以太网不行。

...全文
178 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
对牛乱弹琴 2012-03-19
  • 打赏
  • 举报
回复
结贴来了,原来是双方格式不一致,谢谢妖哥
ccrun.com 2012-03-19
  • 打赏
  • 举报
回复
这么说来就不是发送的问题了,你还是研究PLC那边吧,看看有什么限制。
对牛乱弹琴 2012-03-19
  • 打赏
  • 举报
回复
妖哥,我telnet成功连接,字母键按10下就关闭了,
小键盘数字键按第3下就关闭了,是不是小键盘的按一下发送3个字符?
因为大键盘上数字键也是按第10下关闭,嘿嘿,这个指令我不是很明白,刚才百度来的。

总之,就是发送第10个字符就被强制关闭了连接。
妖哥这能判断是哪里出了问题吗?

[Quote=引用 4 楼 ccrun 的回复:]
你用telnet连接一下,发送10个字符,看看PLC也是主动关闭吗。
[/Quote]
ccrun.com 2012-03-19
  • 打赏
  • 举报
回复
你用telnet连接一下,发送10个字符,看看PLC也是主动关闭吗。
对牛乱弹琴 2012-03-19
  • 打赏
  • 举报
回复

//先说IdTCPClient
IdTCPClient->Port = 8000;
IdTCPClient->Host = "192.168.2.150";
IdTCPClient->Connect();

IdTCPClient->Write("123456789");
//IdTCPClient->WriteLn("123456789");



//这个是ClientSocket
ClientSocket->Port = 8000;
ClientSocket->Address = "192.168.2.150";
ClientSocket->Active = true;

ClientSocket->SendText("123456789");
//ClientSocket->SendBuf("123456789", 9);

[Quote=引用 2 楼 ccrun 的回复:]
你是怎么发的,贴代码。
[/Quote]

谢谢妖哥关注
ccrun.com 2012-03-19
  • 打赏
  • 举报
回复
你是怎么发的,贴代码。
对牛乱弹琴 2012-03-19
  • 打赏
  • 举报
回复
是我没描述清楚吗?自己顶一下

1,317

社区成员

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

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