【问题标题】:can't send data from react-native app to python server无法将数据从 react-native 应用程序发送到 python 服务器
【发布时间】:2019-07-15 09:17:21
【问题描述】:

我正在做一个使用 python 套接字服务器发送和接收数据的应用程序。使用 react-native 编写的应用程序。每次我连接并尝试发送/接收数据时,它都会给出错误:GET /socket.io/?EIO=3&transport=polling&t=Mlquqm0 HTTP/1.1

实际上我发送了一个像“hello server”这样的数据,但是服务器收到了这个错误。

python 套接字在 ubuntu 服务器中工作。我在 python 客户端上试过这个,它可以工作,但不是 react-native 客户端。

server.py:
import socket
import sys
import ast
import os
import time

HOST = ip
PORT = port

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.socket: must use to create a socket.
# socket.AF_INET: Address Format, Internet = IP Addresses.
# socket.SOCK_STREAM: two-way, connection-based byte streams.
print('socket created')

# Bind socket to Host and Port
try:
    s.bind((HOST, PORT))
except socket.error as err:
    print
    'Bind Failed, Error Code: ' + str(err[0]) + ', Message: ' + err[1]
    sys.exit()

print('Socket Bind Success!')

# listen(): This method sets up and start TCP listener.
s.listen(10)
print('Socket is now listening')

while 1:
    conn, addr = s.accept()
    print('Connect with ' + addr[0] + ':' + str(addr[1]))
    buf = conn.recv(64)
    buf = buf.decode()
    command = str(buf)
    print(command)
    nickname,password,command = command.split()
    gazoz = str(nickname) + " " + str(password) + " " + str(command)
    input = open("input.txt","a+",encoding="utf-8")
    input.write(str(gazoz) + "\n")
    input.close()
    print(nickname)
    time.sleep(2)
    if os.path.isfile("connection/us_" + nickname + ".txt"):
        data = open("connection/us_" + nickname + ".txt","r",encoding="utf-8")
        msg = data.read()
        print(msg)
        data.close()
        os.remove("connection/us_" + nickname + ".txt")
        msg = str.encode(msg)
        if len(msg) == 0:
            msg = "pek bisi yok"
            msg = str.encode(msg)

    conn.send(msg)

s.close()

反应原生客户端

import io from 'socket.io-client';
const socket = io("ip:port");
        socket.connect();
        socket.emit("hello server");
        socket.close();

【问题讨论】:

    标签: python-3.x sockets react-native socket.io


    【解决方案1】:

    你可以试试这个吗?

    import SocketIOClient from "socket.io-client/dist/socket.io"; 
    const socket = await SocketIOClient(url); 
    socket.on("connect", () => { console.log("connected") });
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 2021-04-29
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 2023-04-06
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多