Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 使用node.js中的net.createConnection(端口,[host])创建tcp套接字_Sockets_Node.js - Fatal编程技术网

Sockets 使用node.js中的net.createConnection(端口,[host])创建tcp套接字

Sockets 使用node.js中的net.createConnection(端口,[host])创建tcp套接字,sockets,node.js,Sockets,Node.js,这里的任何人都可以给我一些在node.js中使用套接字的指针吗 可以打开tcp连接,例如在端口8000上的172.0.0.1上,例如使用net.createConnection(端口,主机) var net=require('net'), querystring=require('querystring'), http=require('http'), 端口=8383, 主机=172.123.321.213, path=/path/toService, _职位=''; var server=ht

这里的任何人都可以给我一些在node.js中使用套接字的指针吗

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

var net=require('net'),
querystring=require('querystring'),
http=require('http'),
端口=8383,
主机=172.123.321.213,
path=/path/toService,
_职位='';
var server=http.createServer(函数(req,res){
如果(请求方法=='POST'){
请求开启(“数据”,功能(数据){
body+=数据;
});
请求on('end',function(){
_post=querystring.parse(body);//解析器post数据
控制台日志(_post);
})
}
var socket=net.createConnection(端口、主机);
var socket=net.createConnection(端口、主机);
socket.on('error',函数(error){
send404(res、主机、端口);
})
socket.on('connect',函数(connect){
console.log(“已建立连接”);
res.writeHead(200,{'content-type':'text/html'});
res.write('200 OK:
已建立到主机'+host+'的连接。Pid='+process.Pid+'\n');
res.end();
变量体=“”;
插座。_写式按钮(_柱);
socket.write(_post);
控制台日志(套接字);
socket.on('end',function(){
console.log('套接字关闭…')
})
})
setKeepAlive(enable=true,1000);
}).听(8000);
send404=功能(res、主机、端口){
res.writeHead(404,{'content-type':'text/html'});
res.write('404无法在端口'+port+'\n'上建立到主机'+host+'的连接);
res.end();
}
但现在我需要将数据发送到定义的路径-如果我将路径添加到主机,然后尝试连接,则连接将失败

有什么想法吗

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

var socket=net.createConnection(端口、主机);
log('socketcreated');
socket.on('data',函数(data){
//记录来自HTTP服务器的响应。
console.log('响应:'+数据);
}).on('connect',function()){
//手动写入HTTP请求。
socket.write(“GET/HTTP/1.0\r\n\r\n”);
}).on('end',function(){
console.log('DONE');
});

TCP不提供路径。TCP可以连接到(主机、端口)对。也许您想使用HTTP?哦,另外,我认为您应该在写入套接字之前设置on('end')回调,以防它在写入过程中结束。
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();
  }