好的,感谢,我再找找问题,之所以建立的TCP链接无法通信,我觉得可能与WIFI的IP地址和端口号定义有关
5co6 发布的帖子
-
RE: WIFI如何直接通过端口传输数据?
我通过openmv做的东西,需要远程实时传输数据和图片,需要用到WIFI建立TCP或者UDP。如果通过HTTP取获取数据,每次都需要刷新网页,并且很多时候传输卡顿,数据不实时。
如果是不用AP模式,用STA模式,也能够建立TCP吗? -
RE: WIFI如何直接通过端口传输数据?
电脑是链接到板子的WIFI上的,查看WIFI属性,可以看到openmv的WIFI的IP地址和DNS地址:
可以看到“网络调试助手本机地址”:192.168.1.100,是其链接的WIFI的IP地址,端口为8080(可手动修改)。而远程主机地址为:192.168.1.100:64602,应该是建立的传输进程服务,其端口号,也就是“64602”每次建立链接都会变。
我怀疑是传输地址不匹配导致的,数据是有传输过去,但是没有传输到正确的端口号。
我之后尝试建立了TCP,不过还是老问题。 -
WIFI如何直接通过端口传输数据?
我想要通过WIFI扩展版直接用socket建立UDP传输数据,而不是需要建立HTTP头之后再传输数据?
代码如下:
import socket, network SSID ='OPENMV_AP' # Network SSID KEY ='1234567890' # Network key (must be 10 chars) HOST = '192.168.1.100' PORT = 8080 BUFFSIZE = 1024 MAX_LISTEN = 5 ADDR = [HOST, PORT] wlan = network.WINC(mode=network.WINC.MODE_AP) wlan.start_ap(SSID, key=KEY, security=wlan.WEP, channel=2) def udpClient(s): # 创建客户端套接字 while True: # 发送信息到服务器 data = "THANKS" s.sendto(data.encode('utf-8'), ADDR) print('send success') # 接收服务端返回信息 recvData, addrs = s.recvfrom(BUFFSIZE) print('recv message : {}'.format(recvData.decode('utf-8'))) # 关闭套接字 s.close() if __name__ == '__main__': while True: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) print('execute udpsever') udpClient(s)
以上相同的代码(除去network模块),在PC端运行,我可以在客户端获取到数据,而在openmv上没有数据?
PC 端运行时:
openmv上运行时:
-
WIFI传输图片,能否在PC端代码里获取?
像:
import requests r = requests.get('192.168.1.1:8080')
可以在我的PC端代码里获取json数据。
那么如何才能获取WIFI传输过来的图片呢?
-
RE: 关于WIFI如何同时传输图片和数据问题
我试了一下,似乎可行,线性检测端口号就行,就是等待9080端口数据传输完成,再传输8080端口,两个端口数据不能并行传输。
-
关于WIFI如何同时传输图片和数据问题
我们知道利用wifi传输图片的头为:
client.send("HTTP/1.1 200 OK\r\n"
"Server: OpenMV\r\n"
"Content-Type: image/jpeg\r\n\r\n")传输json数据的头为:
client.send("HTTP/1.1 200 OK\r\n"
"Server: OpenMV\r\n"
"Content-Type: application/json\r\n"
"Cache-Control: no-cache\r\n"
"Pragma: no-cache\r\n\r\n")如何才能在192.168.1.1:8080该端口同时获取图片与数据呢?