[英]Python Web Service vs Socket programming Client/Server Design
我需要一些帮助,我正在客户端服务器软件的早期设计阶段,我不知道这两个选项(Web服务或套接字编程)中哪一个最适合我的软件。
所有编程都在python中进行。
布局:
PC将需要运行服务器服务-该服务器将从本地计算机获取命令,并将其发送到MiniPC。
MiniPC将需要运行客户端服务-当它识别命令(方法)时,他将转到硬件(通过串行连接,USB .....)进行操作,然后返回结果到miniPC。
MiniPC获得硬件结果,并将其发送到日志服务器和主PC
笔记:
Questios:
您应该能够为此使用套接字编程。 在PC上设置套接字服务器,在MiniPC设备上设置客户端。 客户端将等待PC的输入(从套接字读取),然后将其从硬件获得的输出发送回去。 在设计方面,我看到两件事。 首先,套接字服务器可以运行select()处理多个客户端。 其次,您可能希望将MiniPC套接字的SO_SNDBUF套接字选项和PC上的服务器的SO_RCVBUF增大到10Kb的倍数。 您考虑使用Web的观点是什么?
我已经在BeagleBone上使用基于ARM的控制器完成了一个类似的项目:请随时通过评论问我问题。
首先,从技术上讲,您的BeagleBones是服务器-因为它们运行的是事件触发的守护程序服务-而PC是客户端。 (但这只是吊坠而已)
其次,由于嵌入式设备的限制,我无法在服务器上运行高效的Web服务器,因此选择很简单。 我建议您坚持使用套接字编程,但是要添加网络服务,例如DCHP,对TCP / UDP / UDP多播的支持,ping,回显,...
最后,关于性能的重要问题如下: 通信的物理层是什么? 以太网? 无线上网 ? 蓝牙/ ZigBee? I2C / CAN / ...?
我想这是以太网:由于CSMA,IEEE 802.11协议无法很好地扩展(请参阅此处http://fr.wikipedia.org/wiki/CSMA )。 如果要具有多个设备(数十个),则需要交换机/路由器来封装子网,以避免网络拥塞。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.