2014-01-09 35 views
3

執行該代碼時:節點 - 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(64)與基於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

您正在使用連接回調和事件。爲什麼不使用其中之一? – qubyte

+0

你可以用任何你喜歡的方式來做,但在回調中使用事件是很好的方法 –