данные, отправленные с помощью firefox tcp socket.send () не могут получить данные до закрытия сокета

Я пытаюсь отправить некоторые данные из Firefox в настольное приложение Java. Так что мой класс Java работает как сервер, а скрипт Firefox работает как клиент. Когда я тестирую его, используя другой класс Java, которыйclient.java данные успешно отправленыserver.java однако когда я использую этот скрипт Firefox для отправки данных, он на самом деле подключается к серверу. ноsend("text"); не работает в реальном времени. Я имею в виду сервер показывает полученные данные, когда я закрываю сокетsocket.close(); , но я знаю, что нет проблем сserver.java код.

это не работает

setTimeout(function(){socket.send("i'm firefox");},5000); // because socket isn't closed yet

эта работа

setTimeout(function(){socket.send("i'm firefox");},5000);
setTimeout(function(){socket.close();},6000); 

но я действительно не хочу закрывать сокет, потому что я хочу посылать много данных один за другим.

вот полный код, протестированный на блокноте [-browser]

var tcpSocket = Cc["@mozilla.org/tcp-socket;1"].createInstance(Ci.nsIDOMTCPSocket);
var socket = tcpSocket.open("127.0.0.1", 5000);

setTimeout(function(){socket.send("i'm firefox");},5000);
//setTimeout(function(){socket.close();},8000);// i'm firefox text retrieve by server when run this line / when close the socket.

я думаю, что Java-код не важен. ноВот это.

Я спрашиваю, почему мне нужно закрыть сокет для отправки данных? и как я могу отправить данные без закрытия сокета?

Обновить

я сделал подарок чтобы показать мою проблему, вы можете увидеть, что данные отправляются не в режиме реального времени, но когда сокет закрыт, все данные сбрасываются.

Ответы на вопрос(1)

Ваш ответ на вопрос