Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/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
我需要将用java创建的客户端TCP与用node.js创建的HTTP服务连接起来_Java_Node.js_Sockets_Tcp - Fatal编程技术网

我需要将用java创建的客户端TCP与用node.js创建的HTTP服务连接起来

我需要将用java创建的客户端TCP与用node.js创建的HTTP服务连接起来,java,node.js,sockets,tcp,Java,Node.js,Sockets,Tcp,我需要将用java创建的客户端TCP与用node.js创建的HTTP服务器连接起来 我希望在完成后,单击HTML的一个按钮,在客户端java中使用模块net通过套接字执行一个操作 我的HTML代码: <body> <button id="bt1">Button 1</button> <button id="bt2">Button 2</button> <button id="bt3">Button 3<

我需要将用java创建的客户端TCP与用node.js创建的HTTP服务器连接起来 我希望在完成后,单击HTML的一个按钮,在客户端java中使用模块net通过套接字执行一个操作

我的HTML代码:

<body>
   <button id="bt1">Button 1</button>
   <button id="bt2">Button 2</button>
   <button id="bt3">Button 3</button>
   <script src="/socket.io/socket.io.js"></script>
   <script>
      var socket = io.connect('http://localhost');
            socket.on('httpServer', function (data) {
            console.log(data);
            socket.emit('tcp', "For TCP");
      });
   </script>
</body> 
我的代码节点serverTCP.js:

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 5555;

var server = net.createServer();
server.listen(PORT, HOST);

server.on('connection', function(sock) {
    console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
    sock.write("TCP sending message : 1");  // No send
    console.log('Server listening on ' + server.address().address +':'+ server.address().port);
}).listen(PORT, HOST);
我的代码节点serverHTTP.js:

var http = require('http').createServer(httpHandler), fs = require("fs"), wsock = require('socket.io').listen(http), tcpsock = require('net');

var http_port = 8080;

var tcp_HOST = '127.0.0.1';
var tcp_PORT = 5555;

/**
 * http server
 */
function httpHandler (req, res){
  fs.readFile(__dirname + '/index.html',
  function(err, data) {
    if(err){
      res.writeHead(500);
      return res.end('Error loading index.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}

http.listen(http_port);
console.info("HTTP server listening on " + http_port);

wsock.sockets.on('connection', function(socket){ 

    var tcpClient = new tcpsock.Socket({allowHalfOpen: false, readable: true, writable: true});
    tcpClient.setEncoding("ascii");
    tcpClient.setKeepAlive(true);

    tcpClient.connect(tcp_PORT, tcp_HOST, function(){
        console.info('CONNECTED TO : ' + tcp_HOST + ':' + tcp_PORT);

        tcpClient.on('data', function(data){
            console.log('DATA: ' + data);
            socket.emit("httpServer", data);
        });

        tcpClient.on('end', function(data){
            console.log('END DATA : ' + data);
        });
    });

    socket.on('tcp-manager', function(message){
        console.log('"tcp" : ' + message);
        return;
    });

    socket.emit("httpServer", "Initial Data");
});

最好使用http服务器。使用Tomcat并创建一个简单的Servlet将解决您的问题

否则,您需要侦听端口并使用单独的任务接受传入请求。这比您的示例代码更复杂。看

var http = require('http').createServer(httpHandler), fs = require("fs"), wsock = require('socket.io').listen(http), tcpsock = require('net');

var http_port = 8080;

var tcp_HOST = '127.0.0.1';
var tcp_PORT = 5555;

/**
 * http server
 */
function httpHandler (req, res){
  fs.readFile(__dirname + '/index.html',
  function(err, data) {
    if(err){
      res.writeHead(500);
      return res.end('Error loading index.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}

http.listen(http_port);
console.info("HTTP server listening on " + http_port);

wsock.sockets.on('connection', function(socket){ 

    var tcpClient = new tcpsock.Socket({allowHalfOpen: false, readable: true, writable: true});
    tcpClient.setEncoding("ascii");
    tcpClient.setKeepAlive(true);

    tcpClient.connect(tcp_PORT, tcp_HOST, function(){
        console.info('CONNECTED TO : ' + tcp_HOST + ':' + tcp_PORT);

        tcpClient.on('data', function(data){
            console.log('DATA: ' + data);
            socket.emit("httpServer", data);
        });

        tcpClient.on('end', function(data){
            console.log('END DATA : ' + data);
        });
    });

    socket.on('tcp-manager', function(message){
        console.log('"tcp" : ' + message);
        return;
    });

    socket.emit("httpServer", "Initial Data");
});