怎样运用socket网络编程实现上位机和下位机之间通过wifi进行通信
手机上,简单答一下吧:首先下位机要有完整的套接字API,或者完整的TCP/IP协议栈。然后将下位机的Wi-Fi与上位机联入同一个局域网(同一个路由器)保证下位机的IP与路由器、上位机处于同一网段。上下位通讯可以通过两种方式,一种是UDP,一种是TCP。UDP比较简单,下位机指定一个端口,在该端口上创建一个套接字,上位机亦通过操作系统API创建UDP套接字,然后通过发送API向下位机IP的指定端口发数据就行了。主要使用的API是sendto和recvfrom。TCP稍微复杂一点,需要指定一个主机(比如下位机)使用listen监听端口,然后另一台设备(比如上位机)使用connect去建立连接,connect成功后两边就可以通过send和recv来收发信息了。通讯完成后关闭套接字以释放连接。两种方式UDP比较灵活,TCP数据送达比较有保障。
■网友
需要查你所用的操作系统的网络通信API,常用的协议就是UDP和TCP,UDP最简单,但是无连接不可靠,TCP较复杂,但是有连接且可靠。对于UDP Server来说,涉及的函数为:socket(); 地址分配; bind(); recvfrom(); sendto();对于UDP Client来说,涉及的函数为:socket(); 地址分配; bind(); sendto(); recvfrom();BTW,如果UDP需要做成双向通信的话,可以使用bidirectional UDP,即在client中分配地址时既分配自己地址,也分配server地址;否则,需要分别建立两套socket来进行UDP的双向通信。对于TCP Server来说,涉及的函数为:socket(); 地址分配; bind(); listen(); accept(); read(); write()对于TCP Client来说,涉及的函数为:socket(); 地址分配; connect(); write(); read()TCP是有连接的,建立了连接就往自己建立的socket里写或者读数据即可,对方一定能收到,没有bidirectional的概念,TCP就是双向的。推荐一个罗格斯的socket编程教程,通俗易懂,有例程,在unix里跑一跑就明白了。https://www.cs.rutgers.edu/%7Epxk/417/notes/sockets/index.html
■网友
这里你需要确定你是想用wifi模块当server可还是客户端,假设你是想用wifi模块当server,然后用上位机去连接这个server并与其通信。首先,你需要设置你的wifi模块。将wifi设置成ap模式。server模式。端口号也需要设置。接下来你就可以写一个socket通信程序去连接wifi模块了。具体步骤等我开电脑了再给你详细写一下。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
