我需要将用java创建的客户端TCP与用node.js创建的HTTP服务连接起来
我需要将用java创建的客户端TCP与用node.js创建的HTTP服务器连接起来 我希望在完成后,单击HTML的一个按钮,在客户端java中使用模块net通过套接字执行一个操作 我的HTML代码:我需要将用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<
<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");
});