Witam, chciałbym uzyskać połączenie pomiędzy JavaScript a Python, głównie jakiś socket. Serwer mam oprogramowany:
import socket
import threading
import utils
import time
l_conn = []
def enc(txt):
return txt.encode('UTF-8')
def dec(txt):
return txt.decode('UTF-8')
def receiving(conn, addr, r_bytes=1024):
while True:
data = dec(conn.recv(r_bytes))
print(str(data))
if(not data):
print("[!] " + str(addr) + " disconnected")
if(conn in l_conn):
l_conn.remove(conn)
return False
elif(utils.str_start(data, '01')):
data = data[2:]
print("[===] Saving to file data: " + data)
else:
print("[!] Unidentified data error")
def listening():
while True:
c_conn, c_addr = s.accept()
threading.Thread(target=receiving, args=(c_conn,c_addr,)).start()
print("[!] New connection: " + str(c_conn))
l_conn.append(c_conn)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 65432))
s.listen()
threading.Thread(target=listening).start()
print("[!] Server ready!\nWaiting for connections!")
print("\n\nConsole: (use 'end' to close session)")
while True:
print("CMD> ", end='')
cmd = input()
if(cmd == "end"):
s.close()
exit()
else:
for aconn in l_conn:
aconn.sendall(enc(cmd))
Gorzej z JavaScriptem. Skopiowałem z którejś strony coś takiego:
var net = require('net');
var client = new net.Socket();
client.connect(65432, '127.0.0.1', function() {
console.log('Connected');
client.write('Hello, server! Love, Client.');
});
client.on('data', function(data) {
console.log('Received: ' + data);
client.destroy(); // kill client after server's response
});
to wywalało: ReferenceError: require is not defined
Potem pobrałem require.js i wyrzuciło coś takiego:
Error: Module name "net" has not been loaded yet for context: _. Use require([]) https://requirejs.org/docs/errors.html#notloaded
No to użyłem require([]) i wywala:
TypeError: net.Socket is not a constructor
Wczytanie się nie powiodło dla elementu „script” ze źródłem „file:///home/user/Pulpit/testwebsite/net.js”.
Error: Script error for "net"
https://requirejs.org/docs/errors.html#scripterror
No i już padam, nie wiem co robić. Pomoże ktoś?