用JavaScript发送简单的TCP消息,类似于Python.socket
来自Python,我正在尝试使用用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_
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
。请检查:)