[英]Java client socket connect doesn't work
因此,我正在嘗試使用此指南-> http://mrbool.com/communicating-node-js-and-java-via-sockets/33819來使Java客戶端可以連接到node.js服務器。 我遵循了所有步驟,但是當我運行代碼時,線程阻塞了。 我在nodejs服務器上有適當的事件,但是沒有收到來自Java客戶端的消息。 有誰知道為什么會這樣以及如何解決?
Node.js代碼:
var net = require('net');
var host = '127.0.0.1';
var port = 3000;
var server = net.createServer((sock) => {
console.log("Connected " + sock.remoteAddress + ":" + sock.remotePort);
sock.on('data', (data) => {
console.log("Received Data")
sock.write(data);
})
sock.on('close', (data) => {
console.log('CLOSED ' + sock.remoteAddress + ":" + sock.remotePort);
});
});
server.listen(port, host);
console.log("listening on " + host + ":" + port);
和Java客戶端:
import java.io.*;
import java.net.*;
public class Main {
private Socket clientSocket;
private BufferedReader input;
private PrintWriter output;
String hostName = "127.0.0.1";
int port = 3000;
public Main() {
}
public static void main(String[] args) {
Main main = new Main();
try {
main.connect();
String message = "test123";
System.out.println("Sending " + message);
String returnStr = main.echo(message);
System.out.println(returnStr);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
main.getSocket().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void connect() throws UnknownHostException, IOException {
clientSocket = new Socket(hostName, port);
}
public String echo(String message) throws IOException {
try(PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));){
String returnStr = null;
System.out.println("Attempting to send");
out.print(message);
returnStr = in.readLine();
return returnStr;
}
}
public Socket getSocket() {
return clientSocket;
}
}
命令提示符輸出:
listening on 127.0.0.1:3000
Connected 127.0.0.1:52572
“連接”運行良好。 問題出在其他地方。
readLine()
閱讀一行。 print()
。 readLine()
被阻塞,等待行終止符,該行永遠不會發送。 使用println()
代替print()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.