连接到服务器时如何获取 TCP 套接字 ID

Posted

技术标签:

【中文标题】连接到服务器时如何获取 TCP 套接字 ID【英文标题】:How to Get TCP Socket Id When it's connect to server 【发布时间】:2021-10-27 02:46:03 【问题描述】:

我的问题是,连接服务器时如何获取 TCP Socket Id。

我有这样的代码,

const net = require('net');

const server = net.createServer();
server.listen(port, host, async() => 
    console.log('Server is running on port 6633');
);

server.on('connection', async function(sock) 

   console.log('sockId: ',sock.id); // It's give me undefined


那么,如何在 NodeJS 中获取 TCP 连接中的 Socket Id。

【问题讨论】:

【参考方案1】:

为了解决这个问题时我自己的特殊需要,我刚刚创建了一个带有一些用户标识符和 websocket 本身的地图。

否则你可以使用请求头 req.headers['sec-websocket-key']

let socketMap = new Map()
server.on('connection', async function(sock, req) 
   console.log('sockId: ',sock.id); // It's give me undefined
   socketMap.set(req.headers['sec-websocket-key'], sock)

【讨论】:

以上是关于连接到服务器时如何获取 TCP 套接字 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Perl 通过 TCP 和 UDP 连接到远程机器?

如何在颤动中连接到 TCP 套接字(不是 Web 套接字)?

连接到 redis 时,Unix 套接字比 tcp 慢

如何将java套接字连接到远程服务器套接字

如何使用 akka 连接到 Unix 套接字?

如何在 VB.NET 中检查 TCP 服务器(套接字)与 TCP 客户端的连接状态