用JavaScript发送简单的TCP消息,类似于Python.socket

用JavaScript发送简单的TCP消息,类似于Python.socket,javascript,python,node.js,sockets,tcp,Javascript,Python,Node.js,Sockets,Tcp,来自Python,我正在尝试使用JavaScript和node.js实现类似的结果 我正在尝试通过网络发送一条简单的TCP消息。在Python中,我将通过以下方式实现这一点: import socket device_ip = '192.168.0.10' device_port = 20000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) s.connect((device_ip, device_

来自Python,我正在尝试使用
JavaScript
node.js
实现类似的结果

我正在尝试通过网络发送一条简单的TCP消息。在
Python
中,我将通过以下方式实现这一点:

import socket

device_ip = '192.168.0.10'
device_port = 20000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(5)
s.connect((device_ip, device_port))

command = ('Message to be sent to device here')
s.sendall(command.encode())
s.recv(4096)
我已经查看了node的
socket.io
模块,但是在
Python
中找不到像上面这样简单的解决方案

device_ip
末尾的设备将响应消息,只要消息是TCP编码的,那么它将只发送回JS可以有效忽略的
Ack
消息。
Ack
消息仅作为发送另一条消息之前的简单握手存在。
我有
Python
代码,但我发现自己需要用
JS
运行它,
Node

节点提供了
Net
——它基本上允许您创建tcp服务器和客户端套接字。下面是一个非常简单的服务器套接字示例:

const net = require('net');
const server = net.createServer((c) => {
    console.log('client connected');
    c.on('end', () => {
        console.log('client disconnected');
    });
    c.write('hello\r\n');
    c.pipe(c);
});

server.listen(20000, () => {
    console.log('server socket listening ...');
});
下面是相应客户端套接字的代码:

const net = require('net');
const client = net.createConnection({ port: 20000}, () => {
    client.write('world!\r\n');
});
client.on('data', (data) => {
    console.log(data.toString());
    client.end();
});

所以这并没有完全回答这个问题,但它确实给了我解决这个问题的方法,所以谢谢你。我的结论如下。var client=new net.Socket();client.connect(端口,IP_地址,函数(){client.write('Command1');client.write('Command2');}但是我现在需要的是在发送'Command2'之前确认客户端返回的ACK消息。我想这应该在
socket.write的回调部分完成(数据[,编码][,回调])
但是我完全不知道如何实现这一点……我不是100%确定,但可能是这样的?(这不会在codesandbox中运行,但您可以复制文件并在您的机器上执行)。基本上,我所做的是将服务器和客户端包装在一个类中,并限制在客户端中发送/接收消息,直到服务器发送了
ACK
。请检查:)