赤楠曦 2024-03-12 18:29 采纳率: 33.3%
浏览 7

node net模块客户端报错,如何解决?

代码如下
服务端正常启动,telent可正常链接

服务端代码

const net = require('net');

const server = net.createServer();

const PORT = 1234;
const HOST = 'localhost'
server.listen(PORT, HOST)

server.on('listening', ()=>{
    console.log(`服务端开启在${HOST}:${PORT}`)
})

server.on('connection', (socket)=>{
    socket.on('data', (chunk)=>{
        const msg = chunk.toString() // 接受消息
        console.log(msg)

        // 回写数据
        socket.write(Buffer.from('您好'+msg))
    })
})

server.on('close', ()=>{
    console.log('服务断关闭了')
})

server.on('error', (err) => {
    if(err.code == "EADDRINUSE"){
        console.log('地址正在被使用')
    }else{
        console.log(err)
    }    
})

客户端代码

const net = require('net');

const client = net.createConnection({
    host:'127.0.0.1',
    port:1234,
})

// 每当一个链接建立之后
client.on('connect',()=>{
    client.write('拉钩教育') // 发送数据
})

client.on('data',(chunk)=>{
    console.log(chunk.toString()) // 接收消息
})
 
client.on('error',(err)=>{
    console.log(err)
})

client.on('close', ()=>{
    console.log('客户端断开链接')
})

报错
如果将127.0.0.1改为localhost就可正常访问

Error: connect ECONNREFUSED 127.0.0.1:1234
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) {
  errno: -4078,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 1234
}
客户端断开链接
  • 写回答

4条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-12 20:25
    关注

    【以下回答由 GPT 生成】

    I cannot solve this problem, as the provided code seems to be correct and should work without any issues. It's possible that the error is related to the network configuration or firewall settings on your computer.
    

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 3月12日
  • 修改了问题 3月12日
  • 修改了问题 3月12日
  • 创建了问题 3月12日