用node.js中的net.createConnection(port,)创build一个tcp套接字

这里的任何人都可以给我几个在node.js中使用套接字的指针?

可以打开一个tcp连接说在端口8000上的172.0.0.1例如使用net.createConnection(端口,主机)

var net = require('net'), querystring = require('querystring'), http = require('http'), port = 8383, host = 172.123.321.213, path = /path/toService, _post = ''; var server = http.createServer(function(req, res) { if(req.method == 'POST') { req.on('data', function(data) { body+=data; }); req.on('end', function() { _post = querystring.parse(body);//parser post data console.log(_post); }) } var socket = net.createConnection(port, host); var socket = net.createConnection(port, host); socket.on('error', function(error) { send404(res, host, port); }) socket.on('connect', function(connect) { console.log('connection established'); res.writeHead(200, {'content-type' : 'text/html'}); res.write('<h3>200 OK: Connection to host ' + host + ' established. Pid = ' + process.pid + '</h3>\n'); res.end(); var body = ''; socket._writeQueue.push(_post); socket.write(_post); console.log(socket); socket.on('end', function() { console.log('socket closing...') }) }) socket.setKeepAlive(enable=true, 1000); }).listen(8000); send404 = function(res, host, port) { res.writeHead(404, {'content-type': 'text/html'}); res.write('<h3>404 Can not establish connection to host: ' + host + ' on port: ' + port + '</h3>\n'); res.end(); } 

但现在我需要发送我的数据到定义的path – 如果我添加到主机的path,然后尝试连接,然后连接将失败。

有任何想法吗?

提前致谢

你的“套接字”对象只是一个简单的TCP套接字 ,它只是一个简单的双向通信通道。 您尝试使用的HTTP方法(例如res.writeHead() )不适用,因此您必须手动编写请求。 尝试这样的事情:

 var socket = net.createConnection(port, host); console.log('Socket created.'); socket.on('data', function(data) { // Log the response from the HTTP server. console.log('RESPONSE: ' + data); }).on('connect', function() { // Manually write an HTTP request. socket.write("GET / HTTP/1.0\r\n\r\n"); }).on('end', function() { console.log('DONE'); });