node.js - node socket出错,这是什么原因?另外我想设置连接超时,怎么写呢?
黄舟
黄舟 2017-04-17 14:51:56
0
1
613

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

reply all(1)
大家讲道理

1.client.connetcWhat does the second parameter 43 mean? ? ? ? , client.connect only receives two parameters (the second one is optional) socket.connect(options[, connectListener])

client.connect(server, function(){
  console.log('connected successfully');
})

2. I want to know what value your server is passed in. It can be { port: 8888, host: 'localhost' } or { path: '/xxx/tt.sock'}

3. To set the timeout, just set the timeout directly. See the code below for details, but you must be aware that even if it times out, only an timeout event will be initiated, and the socket connection will not be closed and must be closed manually ( Call end(), or destroy()).

4. I didn’t see your server code or the code called by the client. I wrote an example for you to see for yourself

Considering your version issue, I try to use ES5 writing method
server.js

var net = require('net')
var server = net.createServer(function(socket) {
  socket.end('goodbye\n')
}).on('error', function(err) {
  // handle errors here
  throw err
});

// listen on localhost:8888.
server.listen({
  host: 'localhost',
  port: 8888
}, function() {
  console.log('opened server on', server.address())
});

client.js

var net = require('net')
var output = ''
var client = new net.Socket();
client.connect({
  port: 8888,
  host: 'localhost'
}, function() {
  console.log('connetc to server successfully')
})

//设置超时方法
client.setTimeout(3000) //设置3s超时
client.on('timeout', function() {
  console.log('timeout for client')
})

client.on('data', function(data) {
  output = data.toString()
  client.end();
})
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template