C# 网络通信,想实现多个电脑连接一个机器,但是机器只能通过一个端口通信

GreAmbWang
博客专家认证
2019-07-08 10:25:52
听说可以用WCF或WebService实现,
我的做法是是这样的,用WCF,机器连接后,将管理机器的变量上传服务器,多个台电脑可以访问这个变量,但是好像每次访问服务,变量都重新实例化了
我想问下具体怎么实现,给个例子?或者用其他什么技术?
或者怎么实现,一个程序负责和机器的端口交互,别的程序调用这个程序?,具体怎么实现?
...全文
3064 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
GreAmbWang 2019-07-11
  • 打赏
  • 举报
回复
引用 41 楼 货郎大叔 的回复:
每次实例化的原因是因为调用服务器的时候做实例化操作了!把这个变量定义成静态的,就不会这样了
没用的,试过了,在软件中访问的静态变量,和服务器中访问的静态变量不在同一个内存空间,服务器每次获取的都是没有修改过的
货郎大叔 2019-07-11
  • 打赏
  • 举报
回复
每次实例化的原因是因为调用服务器的时候做实例化操作了!把这个变量定义成静态的,就不会这样了
wanghui0380 2019-07-11
  • 打赏
  • 举报
回复
来吧,俺们也不想多说啥。没有任何概念,说在多都没概念 这个东西现在叫IOT,国内BAT,国外微软,google,亚马逊都有套件。 国外的俺们就不说了,来看国内的“百度天工” 百度自己的资料比较散,我给个相对比较集中的 https://www.cnblogs.com/Andy0827/p/8687423.html 当然,我们的意思不是让你去看那些技术名词,我们让你看的是BAT,google这些人是怎么想的,怎么弄。具体 技术丢一边去,但人家最大的基础体系是怎么样的,你才有概念
GreAmbWang 2019-07-11
  • 打赏
  • 举报
回复
引用 37 楼 wid999的回复:
[quote=引用 32 楼 wzWangTank 的回复:]
服务端限制了一个客户端连接,还有办法实现多电脑连接机器吗


局域网的的情况下,服务端记录第一台连接机器的电脑,其它再想连的电脑连接并通过第一台电脑处理命令也可以。基于,大部分机器不支持建立多个连接。[/quote] 现在想同一个电脑的两个软件连接一个机器,可以用同一端口?
GreAmbWang 2019-07-11
  • 打赏
  • 举报
回复
引用 36 楼 luj_1768的回复:
机器是否有分组交换功能?
这个不懂,机器有个网口
wid999 2019-07-11
  • 打赏
  • 举报
回复
引用 32 楼 wzWangTank 的回复:
服务端限制了一个客户端连接,还有办法实现多电脑连接机器吗


局域网的的情况下,服务端记录第一台连接机器的电脑,其它再想连的电脑连接并通过第一台电脑处理命令也可以。基于,大部分机器不支持建立多个连接。
zhwh1981 2019-07-11
  • 打赏
  • 举报
回复
用SOCKET异步实现,理论上连接多少个客户端都没问题
luj_1768 2019-07-10
  • 打赏
  • 举报
回复
机器是否有分组交换功能?
GreAmbWang 2019-07-09
  • 打赏
  • 举报
回复
引用 34 楼 wanghui0380的回复:
如果不谈操作,只谈看数据。
同样的类比,电视台直播。
一个记者,一台转播车,几亿人同时看。有问题么?

所以俺们告诉你,有mq,有kafaka,上面人说是推送,错。这不是推送,这是转播


同样还是直播,你可以远程控制记者的,比如“让我们切到现场,远程连线记者,请问xxx有观众提问yyyy,你怎么看”,对远程是远程,记者还是一个记者,没变成几亿记者,所以告诉你是rpc远程过程调用,当然因为网络环境问题(内外网映射,防火墙等等),外网不一定能直接rpc内网,所以建议方式还是kafaka,mq,指令队列订阅(直播也是一样,几亿观众是通过短信平台等等中间渠道,进过队列排序,编导筛选在一条一条发给那一个记者滴)
理论知识懂,实现就不一样了。 发现自己网络通信的知识懂得太少,我还是学学网络通信相关的基础知识
wanghui0380 2019-07-09
  • 打赏
  • 举报
回复
如果不谈操作,只谈看数据。
同样的类比,电视台直播。
一个记者,一台转播车,几亿人同时看。有问题么?

所以俺们告诉你,有mq,有kafaka,上面人说是推送,错。这不是推送,这是转播


同样还是直播,你可以远程控制记者的,比如“让我们切到现场,远程连线记者,请问xxx有观众提问yyyy,你怎么看”,对远程是远程,记者还是一个记者,没变成几亿记者,所以告诉你是rpc远程过程调用,当然因为网络环境问题(内外网映射,防火墙等等),外网不一定能直接rpc内网,所以建议方式还是kafaka,mq,指令队列订阅(直播也是一样,几亿观众是通过短信平台等等中间渠道,进过队列排序,编导筛选在一条一条发给那一个记者滴)
wanghui0380 2019-07-09
  • 打赏
  • 举报
回复
到现在居然还不明白,在给个例子,如果在不明白你项目没救了

电视机和遥控器
10个人看,20个人看,有区别么?
1个遥控器控制有问题么?

为啥非要想20个人20个遥控器?

对了,这就是你的问题,一个串口就一个串口,有问题么?你要看数据就看数据。
你想操作,也行。还是一个串口,发到一个串口,但得一个一个的来。

当然和电视机遥控器的关系一样,多人操作会打架。你要看足球,你老婆要看小鲜肉,你儿子要看熊大……
一人按一下,到底听谁的?打架把。

所以你要考虑的事情是,这种并发看数据没问题,并发操作串口合理不合理
sichuanwww 2019-07-09
  • 打赏
  • 举报
回复
UDP 不就可以实现一对多吗?
GreAmbWang 2019-07-09
  • 打赏
  • 举报
回复
服务端限制了一个客户端连接,还有办法实现多电脑连接机器吗
qq_42471773 2019-07-09
  • 打赏
  • 举报
回复
引用 30 楼 Water Lee的回复:
我怎么看不懂了,个人觉得直接Socket就可以完成了呀。
同,用socket,http,感觉都行
Water Lee 2019-07-09
  • 打赏
  • 举报
回复
我怎么看不懂了,个人觉得直接Socket就可以完成了呀。
  • 打赏
  • 举报
回复
引用 16 楼 wzWangTank 的回复:
[quote=引用 15 楼 好奇都是要学的 的回复:] 你这个需求就是服务器读取机器值 存入服务器, 然别的电脑通过服务器 读出来吧。 如果我的理解的对 读取值存入缓存。 其他的电脑通过服务器在缓存里出取来。 谁用谁取就好了。 跟推送没啥关系啊。 楼上的又推荐这个又推荐那个。 好像都没明白你具体要做什么。
需求就是,多台电脑连接一台机器实现同时通信,比如A电脑和B电脑可以同时控制一台机器[/quote] 别说AB了, 就是在来CD 也一样。 跟设备通信的只有A, BCD都是连A。 A就是个服务器。
″ 暮影 ゛- 2019-07-09
  • 打赏
  • 举报
回复
一个机器好像只能连接一个客户端
足球中国 2019-07-09
  • 打赏
  • 举报
回复
引用 楼主 wzWangTank 的回复:
听说可以用WCF或WebService实现, 我的做法是是这样的,用WCF,机器连接后,将管理机器的变量上传服务器,多个台电脑可以访问这个变量,但是好像每次访问服务,变量都重新实例化了 我想问下具体怎么实现,给个例子?或者用其他什么技术? 或者怎么实现,一个程序负责和机器的端口交互,别的程序调用这个程序?,具体怎么实现?
WCF每次通信都是创建新的对象。写成静态的就可以了。
qq14923349 2019-07-08
  • 打赏
  • 举报
回复
singalr也可以做消息推送
qq14923349 2019-07-08
  • 打赏
  • 举报
回复
非高并发 无过于直接用mvc最简单最快上手了
从楼主字里行间说的 你觉得楼主基础很高么
先从简单的mvc入手知道rpc是个咋回事 简单处理一下并发处理
才好理解其他杂七杂八的框架
加载更多回复(20)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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