簡體   English   中英

NodeJs:如何保持節點服務器 - > Java客戶端連接打開

[英]NodeJs: how to keep Node server-> Java client connection open

server.js 
var net = require('net');
var client = net.connect(4567, 'localhost', function() {
client.write("hello");

client.on('error', function(ex) {
  console.log(ex); });

client.end();
});

client.java
server = new ServerSocket(4567);
client = server.accept();
InputStream input = client.getInputStream();
String inputString = MyClass.inputStreamAsString(input);
system.out.println(inputString);    //inputString gives me "hello"

client.java是一個每5秒運行一次的時間調度程序,它嘗試從Node獲取文本並打印它。 我不想從Node關閉套接字,所以我可以在client.java已經運行時發送另一條消息。 我有2個問題

  1. 刪除client.end()不會向調度程序發送任何消息
  2. 讓client.end()在第一個周期(5秒)工作,但是當它運行第二個周期(第6個周期)時,我有錯誤的Java.net.SocketException:Socket被關閉。

我怎么能不在Node中結束我的套接字並能夠向調度程序發送消息?

你看過net模塊的allowHalfOpen選項了嗎?

var client = net.connect({port: 4567, allowHalfOpen: true},function() {
    //etc
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM