首页 > 解决方案 > 在 JavaScript 中发送简单的 TCP 消息,类似于 Python .socket

问题描述

来自 Python,我正在尝试使用JavaScriptand来实现类似的结果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 编码的,最后的设备就会响应消息,然后它只会发回AckJS 可以有效忽略的消息。在发送另一条消息之前,这些Ack消息仅作为简单的握手存在。我的Python代码可以按需要运行,但我发现自己需要使用JSand运行它Node

标签: javascriptpythonnode.jssocketstcp

解决方案


Node 提供了Net-模块,它基本上允许您创建 tcp-server 和客户端套接字。这是一个非常简单的服务器套接字示例:

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();
});

推荐阅读