2014-01-09 3 views
3

Исполнительной этот код:Node - ENONET при подключении к разъему

var fs = require('fs'); 
var Socket = require('net').Socket; 

var socket = new Socket(); 

console.log('connecting to: ' + server.host + ':' + server.port); 

socket.connect(server.host, server.port); 

socket.on('error', function(err) { 

    console.log(arguments); 
}); 

socket.on('connect', function() { 
    console.log('connected'); 
}); 

socket.on('end', function() { 
    console.log('socket ended'); 
}); 

Всегда выдает эту ошибку:

{ '0': { [Error: connect ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'connect' } } 

Я на CloudLinux (x64) на основе общего хостинга с доступом SSH.

+0

Что 'server.host' и' server.port' разрешить? то есть они разумны? – qubyte

+0

** irc.twitch.tv: 6667 **, я могу подключиться к тому же IP: Порт с PHP fsockopen – Memoria

+0

Скорее всего, это будут обратные аргументы в 'socket.connect'. См. Мой ответ ниже. – qubyte

ответ

10

У вас есть хост и порт назад. Согласно the documentation, вы должны делать: со стороны

socket.connect(server.port, server.host); 
0

Сервер: -

var net = require('net'); 

var server = net.createServer(functi`on (socket){ 
    socket.write("hi\n"); 
    socket.write("you there\n"); 
    socket.on("data", function(dd) { 
    console.log(data); 
    }); 
    }); 


server.listen(8001); 

стороне клиента: -

var fs = require('fs'); 
var Sock = require('net'); 

var socket = Sock.Socket(); 

socket.connect(8001,"127.0.0.1", function() { 

    console.log('connecting to: ' + server.host + ':' + server.port); 
}); 

socket.on('connect', function() { 
    console.log('connected'); 
}); 

socket.on('error', function(err) { 

    console.log(arguments); 
}); 

socket.on('end', function() { 
    console.log('socket ended'); 
}); 
+0

Вы используете обратный вызов connect и событие. Почему бы просто не использовать один из них? – qubyte

+0

вы можете сделать это любым способом, но использовать события внутри обратного вызова - хороший подход –

Смежные вопросы