javascript - 【新手】关于nodejs服务端中客户端连接不上ETIMEDOUT问题
高洛峰
高洛峰 2017-04-11 11:33:12
[JavaScript讨论组]

直接上代码

var server = http.listen(8888,function () {

  var host = server.address().address
  var port = server.address().port

  console.log("welcome to http://%s:%s", host, port)

});
//连接到C服务器DataPort端口
function connectDPort(DataPort,IPaddr){
  nodeServer.connect(DataPort, IPaddr, function() {
    console.log('CONNECTED TO:',IPaddr,DataPort);
  });
  nodeServer.on('error',function(err){
    console.error(err);
    nodeServer.end();
  })
};

//连接到C服务器CmdPort端口
function connectCPort(CmdPort,IPaddr){
  client.connect(CmdPort, IPaddr, function() {
    console.log('CONNECTED TO:',IPaddr,CmdPort);
  });
}
// 同客户端建立连接
io.sockets.on('connection', function (socketIO) {
  aSocket=socketIO;
  // 测试用,连接成功
  socketIO.emit("test","your websocket has connected");
  //返回数据使用,控制C服务器
  socketIO.on('fromWebClient', function (webClientData) {
    console.log(webClientData);
    var head=new Buffer([0xAA,0x01,0x11,0x11,0x11,0x11]);
    var cmdData=new Buffer(webClientData);
    var cmdControl=Buffer.concat([head,cmdData]);
    console.log(cmdControl);
    client.write(cmdControl);
  });
  socketIO.on('fromCmd',function(CmdData){
    newIPaddr=CmdData.IPaddr;
    newCmdPort=parseFloat(CmdData.CmdPort);
    newDataPort=parseFloat(CmdData.DataPort);
      console.log(newIPaddr);
      console.log(newCmdPort);
      console.log(newDataPort);
      connectDPort(newDataPort,newIPaddr);
      connectCPort(newCmdPort,newIPaddr);
  })
});
    

代码有点长,截取的关键的部分,是这样,我想实现能够自由改ip和端口号。

io那里用了个socket.io,然后接收到网页发来的数据,连接端口。

但是现在就是直接ETIMEDOUT,应该怎么修改?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

代码给的有点少,你这个是两个应用的代码合在一起还是一个应用又做服务器又做客户端?一般比较少这样的。
没看到你代码中服务器部分有监听指定ip
你是指客户端链接错误IP时报错退出把?
你可以把连接服务器的代码放在一个函数里比如function connect(ip, port) {},然后监听错误:

client.on('error', (error) => {
  console.error(error);
  client.end();
  connect(newIp, newPort);
});

如果出错,调用自身所在函数,传入新的IP和PORT就好了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号