各位前辈:
项目中使用了ESP8266 AT SOCKET TCP CLIENT功能,访问远程服务器。还有一个功能是ESP8266作为AP热点,移动端连接到热点。此时需要使用TCP SERVER。目前的AT组件不支持TCP SERVER,所以在URC接收回调函数中进行了处理,当接收到数据处理完成后,通过SEND发送数据给移动APP,也完成了通信功能。可是看到CLIENT使用的是AT SOCKET的API函数,而SERVER使用的又是URC接收回调函数,有点不统一。我想了解一下,有没有更好的办法或者函数实现SERVER这部分接收功能。
谢谢!
目前还不支持做服务端,我看源码做服务端的函数有的没有实现,只实现了下面这些。服务器端:创建tcp监听scoket,bind() 绑定地址,accept()监听客户端连接,返回一个与客户端通信的socket,然后数据收发,没有看到监听相关的实现。想要实现对接到 SAL 层的话,只能自己先试着写写了。
/* rt-thread/components/net/at/at_socket/at_socket.h */
收到,谢谢!看来目前只能这样了。没有SERVER功能确实不能通过标准socket实现通信,我是在URC接收函数里接收数据,然后通过消息队列发送给其它线程处理,然后通过记录的连接号码,再通过AT的发送函数,将数据发送给特定的连接。
@huajiankang 是的,目前只有自己实现这套逻辑了