python-3.x - 无法将数据从 react-native 应用程序发送到 python 服务器
问题描述
我正在做一个使用 python 套接字服务器发送和接收数据的应用程序。使用 react-native 编写的应用程序。每次我连接并尝试发送/接收数据时,它都会给出错误:GET /socket.io/?EIO=3&transport=polling&t=Mlquqm0 HTTP/1.1
实际上我发送了一个像“hello server”这样的数据,但服务器收到了这个错误。
在 ubuntu 服务器中工作的 python 套接字。我在 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();
解决方案
你能试试这个吗?
import SocketIOClient from "socket.io-client/dist/socket.io";
const socket = await SocketIOClient(url);
socket.on("connect", () => { console.log("connected") });
推荐阅读
- javascript - 如何使用 Redux Sagas 加载单个对象?
- firebase - 如何匹配两个不同集合中的两个字段?
- postgresql - EF - 使用 Seeding 类时不要增加 id 值
- types - 对整数和浮点数求和的奇怪问题
- docker - 无法看到 docker 任务以运行 gradle build docker 得到错误任务 docker not found
- c++ - 我需要帮助来完成这个程序
- c++ - 排序字符串函数的逻辑问题或语法问题
- angular - 返回 Undefined 或 Null 的本地存储数据
- python - 无法在 python 3.8 中访问嵌套的 JSON
- reactjs - React Dropzone Uploader Component - 如何在上传后更改文件对象在屏幕上的行为?