我有以下的Node.js代码:通过套接字结合Java和Node.js的
var http = require('http');
http.createServer(function(req, res)) {
console.log("URL request"+req.url);
res.writeHead(200, {'Content-Type':'text/plain'});
res.end('Hello World\n');
}).listen(9898, '127.0.0.1');
console.log('Server locally running at http://127.0.0.1:9898/');
我在Java中使用Socket类使一个插座也连接到端口9898。我想无论Node.js写入(在本例中为'Hello World'),由Java类处理。到目前为止,这是我对Java类:
Socket s = new Socket(serverAddress, 9898);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
我的问题是我怎么得到的“Hello World”,由Java代码来读取,所以,每当我打电话System.out.println(input.readLine())
,它打印“你好,世界'?
这是什么问题?它无法连接或连接,但它不读取任何东西?另外,你不需要编写'res.writeHead(200,{'Content-Type':'text/plain'});'因为你只是在TCP层打开一个原始套接字,所以不需要HTTP代码那里。 – ESala
嗨。我不熟悉java,但从节点方面看来,您可能希望某种webservice在联系时与hello world进行响应?在这种情况下,您可以让java访问运行节点服务器的URL:端口以获取结果。我的方法不使用websocket连接。 websocket连接对于您的工作至关重要?特别是因为在这个例子中你使用的是localhost,这意味着没有网络延迟。 – X0r0N
@Darken是的,Java代码不会读取任何内容。它不在控制台中打印“Hello World”?为什么。但是当我停止服务器(在端口上运行)时,在控制台上写入'null'。感谢您的帮助 – user5139637