我有以下的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