关于PLC跟PC通过TCP协议通信谁是server谁是client的问题,有点急

对牛乱弹琴 2012-03-15 10:50:58
现要实现PC机跟松下PLC通过TCP协议通信,双方要互发信息,不知道谁是服务端,谁是客户端?

这个 有点急。谢谢
...全文
3655 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
对牛乱弹琴 2012-03-16
  • 打赏
  • 举报
回复
以上问题都解决了,现在有个新问题,我用clientsocket组件的SendBuf或者SendText发送字符串,PLC接收不到(已经连接成功,指示灯已亮了),我用GetLastError,返回0,不知道什么原因。

就不开新贴了,麻烦指条明路。先谢谢各位了
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
妖哥在不,现在我写的client,但是PLC那面说他写的也是client,通信失败,我就蒙了。不知道怎么回事,
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
妖哥,你现在有么有写好的小程序啊,能不能让我测试一下,嘿嘿[Quote=引用 15 楼 ccrun 的回复:]

在做程序以前,先找个现成的软件和对方通讯试试吧。
[/Quote]
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
恩,这也是个办法。不过在公司我是新人,这样就是怀疑人家做的东西有问题。。。怕是有点不太好。
我下午在提出质疑的时候就感觉到了,呵呵[Quote=引用 15 楼 ccrun 的回复:]

在做程序以前,先找个现成的软件和对方通讯试试吧。
[/Quote]
ccrun.com 2012-03-15
  • 打赏
  • 举报
回复
在做程序以前,先找个现成的软件和对方通讯试试吧。
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
我现在也怀疑是不是他ip没设对,但是不知道结果[Quote=引用 12 楼 ccrun 的回复:]

10049错误一般是参数有问题。比如对方的IP,确定有效么?
[/Quote]
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
因为是松下的PLC,他也没用过。
现在能ping通,但是到这里出问题

if((err = connect(sno, (struct sockaddr*)&DstAddr, sizeof(DstAddr))) < 0)
close(sno);
long lerror = GetLastError();//lerror = 10049

if(connect)perror("connect error");//这里控制台程序显示connect error:Error 0,不知道什么意思


我是win平台[Quote=引用 12 楼 ccrun 的回复:]

10049错误一般是参数有问题。比如对方的IP,确定有效么?
[/Quote]
ccrun.com 2012-03-15
  • 打赏
  • 举报
回复
10049错误一般是参数有问题。比如对方的IP,确定有效么?
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
额,没人理我。可是我又有新的问题了,
if((err = connec(sno, (struct sockaddr*)&DstAddr, sizeof(DstAddr))) < 0)
close(sno);


GetLastError返回10049,不知道怎么回事
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
松下的PLC
我完全按照说明书的例程写的

还是不行


if((sno = socket(AF_INET, SOCK_STREAM, 0)) > 0)
return ERROR;

到这句就返回了

[Quote=引用 6 楼 songhtao 的回复:]

这个要看说明书了,如果两边都是自己编的话,那就要自己决定。
[/Quote]
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
哦,谢谢哈!
只是PLC我不懂,貌似对方也不知道他是C是S(⊙﹏⊙b汗),
就是连接不成功。

对了,我现在用BCB封装的ClientSocket,用的非阻塞,这个有关系吗,PLC那面貌似没有这个概念
[Quote=引用 8 楼 ring_pt 的回复:]
引用 7 楼 chen495810242 的回复:
引用 2 楼 ring_pt 的回复:
谁是server是谁client这个看对方吧
如果对方是client,那pc做server,你就要告知对方你的ip和port方便对方连入

那你的意思是双方互发信息,谁c谁s都可以了?

是的都可以
client端可以向server发消息,同样的server端也可以给client发消息
[/Quote]
Jim@luckeeinc.com 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chen495810242 的回复:]
引用 2 楼 ring_pt 的回复:
谁是server是谁client这个看对方吧
如果对方是client,那pc做server,你就要告知对方你的ip和port方便对方连入

那你的意思是双方互发信息,谁c谁s都可以了?
[/Quote]
是的都可以
client端可以向server发消息,同样的server端也可以给client发消息
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ring_pt 的回复:]
谁是server是谁client这个看对方吧
如果对方是client,那pc做server,你就要告知对方你的ip和port方便对方连入
[/Quote]
那你的意思是双方互发信息,谁c谁s都可以了?
我不懂电脑 2012-03-15
  • 打赏
  • 举报
回复
这个要看说明书了,如果两边都是自己编的话,那就要自己决定。
对牛乱弹琴 2012-03-15
  • 打赏
  • 举报
回复
因为之前在论坛里看到说PC做client,照做了,自己做了server模拟成功,但是今天跟PLC通信时
ClientSocket->Active = true;这句不成功。
另外对方也不知道他是c还是s,她说是s,但是他却不需要知道我的IP,不知道我俩谁搞错了。
[Quote=引用 4 楼 qq752923276 的回复:]
设备那边是client 如果使用TCP协议 想要通信你这边(PC端)只能做server
[/Quote]
__lhy 2012-03-15
  • 打赏
  • 举报
回复
设备那边是client 如果使用TCP协议 想要通信你这边(PC端)只能做server
缘中人 2012-03-15
  • 打赏
  • 举报
回复
是啊,没有明确的规定,是s是c,只能你们自己协商定义了
Jim@luckeeinc.com 2012-03-15
  • 打赏
  • 举报
回复
谁是server是谁client这个看对方吧
如果对方是client,那pc做server,你就要告知对方你的ip和port方便对方连入

1,317

社区成员

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

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