#python #node.js #sockets #ip
#python #node.js #сокеты #ip
Вопрос:
Я в основном работаю над проектом и застрял на этом этапе. Я попробовал обычный tcp, но позже обнаружил, что изображение было частично передано с максимальной длиной около 65 000 на конце узла js. Но общая длина закодированного изображения примерно в 3 раза больше 65000 на стороне python. Изображение в основном представляет собой снимок экрана моего рабочего стола с разрешением около 1920 x 1020. Вот мой код на стороне python
import socket
HOST = '127.0.0.1' # Standard loopback interface address (localhost)
PORT = 9898 # Port to listen on (non-privileged ports are > 1023)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print("-- start --")
conn, addr = s.accept()
print("-- accepted --")
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
print("R : ", data)
if not data:
break
print("sending data")
# b64str is a pre computed string of length around 65000*3
conn.sendall(bytes(b64str, 'utf-8'))
Вот код на стороне узла js
client.connect(9898, '127.0.0.1', function() {
console.log('CONNECTED : img-data-channel');
});
// buff is a buffer queue that stores the base64 encoded string
client.on('data', function(data) {
str_data = String.fromCharCode.apply(null, data);
buff.push_data(str_data);
// console.log("Received: img-data type : ", typeof(str_data), " size : ", str_data.length) ;
});
client.on('close', function() {
console.log('DISCONNECTED : img-data-channel');
});
Заранее спасибо.