收藏
回答

TCPSocket无法通过write发送数据,且报-1 unknow error ?

在开发工具中代码执行正常,且服务端可完整接收数据

在真机(Windows 11 PC)上,可以建立连接,然而服务端收不到任何小程序发送的消息,同时终端抛出异常 errMsg: "write Unknown system error -1"

调试基础库 3.8.5,代码如下

//局域网内调试
App({
    createTCP() {
        const tcpSocket = wx.createTCPSocket()
        
        tcpSocket.connect({
          address'192.168.x.x',
          port8324,
          success() => {
            console.log('TCP连接初始化成功')
          },
          fail(err) => {
            console.error('连接失败:', err)
          }
        })
        
        // 事件监听
        tcpSocket.onConnect(() => {
          console.log('TCP连接建立成功')
          this.sendTestMessage(tcpSocket)
          console.log('发送信息')
        })
    
        tcpSocket.onMessage((res) => {
          console.log('接收数据:', res.message)
        })
    
        tcpSocket.onError((error) => {
          console.log(error)
          console.error('通信异常:', error)
        })
    
        tcpSocket.onClose(() => {
          console.log('连接已关闭')
        })
    
        this.tcpSocket = tcpSocket
      },
      // 发送测试数据
      sendTestMessage(socket) {
        socket.write('hello world')
      },
      // 主动断开
      closeTCP() {
        if (this.tcpSocket) {
          this.tcpSocket.close()
        }
      },
  onLaunch() {
    this.createTCP()
  }
})

服务端代码

import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8324))
server_socket.listen(5)
print("服务器启动,监听端口 8324")
while True:
    client_socket, addr = server_socket.accept()
    print(f"新连接: {addr}")
    client_socket.send(b"Hello")
    data = client_socket.recv(1024).decode('utf-8')
    print(f"接收数据: {data}")
    client_socket.close()


在开发者工具执行时,服务端表现如下图

真机调试时的异常状态

回答关注问题邀请回答
收藏
登录 后发表内容