V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lzm1005
V2EX  ›  Node.js

nodejs net 模块 TCP 通讯 局域网多用户连接提示 Error: connect ECONNREFUSED

  •  
  •   lzm1005 · 2019-03-18 21:39:49 +08:00 · 4247 次点击
    这是一个创建于 2069 天前的主题,其中的信息可能已经有所发展或是发生改变。
    nodejs net 模块制作一个 TCP 客户端连接一个固定的 TCP 地址通讯(如:192.168.1.100:8080), 在同一个局域网内有一个用户连接没有中断的情况下 其它用户连接提示 Error: connect ECONNREFUSED 这是为什么, 有什么办法实现多个用户同时连接!
    第 1 条附言  ·  2019-03-19 10:30:56 +08:00

    server.js:

    var express = require('express'); // 引入express模块
    var app = express();
    var bodyParser = require('body-parser');
    
    // 创建 application/x-www-form-urlencoded 编码解析
    var urlencodedParser = bodyParser.urlencoded({ extended: false })
    
    app.get('/', function(req, res){  // 指定更目录
    	res.sendFile( __dirname + "/index.htm" );
    });
    app.post('/connect', urlencodedParser, function(req, res){
    	client.connect(req.body, function() {  
    	    console.log('CONNECTED SUCCESS');
    	}); 
    });
    
    process.on('uncaughtException', function (err) {
    	//打印出错误
    	console.log(err.code);
    });
    var server = app.listen(888, function(){
    	console.log('listen on: 888');
    });
    

    index.html

    <div class="formConnect">
            <input type="text" id="host" placeholder="请填写HOST">
            <input type="text" id="port" placeholder="请填写PORT">
    	<button id="connect_btn" onclick="air_connect();">连接</button>
    </div>
    
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript">
    	function air_connect(){
    		host = $.trim($('#host').val());
                    port = $.trim($('#port').val());
    		$.post('/connect', {'host':host, 'port':port}, function(backData){
    			console.log(backData)
    		});
    	}
    </script>
    

    比如 监听电脑的IP:192.168.1.05 同局域我不同电脑访问192.168.1.5:888 去连接同一TCP地址 就会报错

    第 2 条附言  ·  2019-03-19 10:35:20 +08:00
    上面 server.js 下面代码忘记附上了:

    var net = require('net');

    var client = new net.Socket();
    lsp7572
        1
    lsp7572  
       2019-03-18 21:49:57 +08:00
    不是 Socket 的 C/S 通信模式吗,8080 作为监听端口要分配别的 socket 和 client 通信吧
    misaka19000
        2
    misaka19000  
       2019-03-18 21:54:29 +08:00
    上代码
    zwh2698
        3
    zwh2698  
       2019-03-18 21:57:23 +08:00 via Android
    服务器端是不是设置了相应的个数?
    aa514758835
        4
    aa514758835  
       2019-03-19 09:32:37 +08:00
    没有端口复用吧,猜的
    lzm1005
        5
    lzm1005  
    OP
       2019-03-19 10:37:19 +08:00
    @misaka19000 代码已经附上
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2814 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:29 · PVG 10:29 · LAX 18:29 · JFK 21:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.