导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. 5co6
    5
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    5co6

    @5co6

    0
    声望
    10
    楼层
    641
    资料浏览
    1
    粉丝
    0
    关注
    注册时间 最后登录

    5co6 关注

    5co6 发布的帖子

    • RE: WIFI如何直接通过端口传输数据?

      好的,感谢,我再找找问题,之所以建立的TCP链接无法通信,我觉得可能与WIFI的IP地址和端口号定义有关

      发布在 OpenMV Cam
      5
      5co6
    • RE: WIFI如何直接通过端口传输数据?

      还有就是,WIFI扩展版可以直接建立TCP传输而不是通过HTTP吗?

      发布在 OpenMV Cam
      5
      5co6
    • RE: WIFI如何直接通过端口传输数据?

      我通过openmv做的东西,需要远程实时传输数据和图片,需要用到WIFI建立TCP或者UDP。如果通过HTTP取获取数据,每次都需要刷新网页,并且很多时候传输卡顿,数据不实时。
      如果是不用AP模式,用STA模式,也能够建立TCP吗?

      发布在 OpenMV Cam
      5
      5co6
    • RE: WIFI如何直接通过端口传输数据?

      电脑是链接到板子的WIFI上的,查看WIFI属性,可以看到openmv的WIFI的IP地址和DNS地址:
      0_1620014516028_捕获.PNG

      可以看到“网络调试助手本机地址”:192.168.1.100,是其链接的WIFI的IP地址,端口为8080(可手动修改)。而远程主机地址为:192.168.1.100:64602,应该是建立的传输进程服务,其端口号,也就是“64602”每次建立链接都会变。
      我怀疑是传输地址不匹配导致的,数据是有传输过去,但是没有传输到正确的端口号。
      我之后尝试建立了TCP,不过还是老问题。

      发布在 OpenMV Cam
      5
      5co6
    • RE: WIFI如何直接通过端口传输数据?

      第二张图错误,现更改:

      0_1619500274361_asd.png

      发布在 OpenMV Cam
      5
      5co6
    • 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 端运行时:
      0_1619444709765_PC端发送接收.PNG

      openmv上运行时:
      0_1619444756632_PC端发送接收.PNG

      发布在 OpenMV Cam
      5
      5co6
    • WIFI传输图片,能否在PC端代码里获取?

      像:

      import requests
      r = requests.get('192.168.1.1:8080')
      

      可以在我的PC端代码里获取json数据。

      那么如何才能获取WIFI传输过来的图片呢?

      发布在 OpenMV Cam
      5
      5co6
    • RE: 关于WIFI如何同时传输图片和数据问题

      我试了一下,似乎可行,线性检测端口号就行,就是等待9080端口数据传输完成,再传输8080端口,两个端口数据不能并行传输。

      发布在 OpenMV Cam
      5
      5co6
    • RE: 关于WIFI如何同时传输图片和数据问题

      那可以分别使用两个端口,如8080和9080,两个端口分别传输图片与数据。

      发布在 OpenMV Cam
      5
      5co6
    • 关于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该端口同时获取图片与数据呢?

      发布在 OpenMV Cam
      5
      5co6