данные, отправленные с помощью 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-код не важен. ноВот это.
Я спрашиваю, почему мне нужно закрыть сокет для отправки данных? и как я могу отправить данные без закрытия сокета?
Обновитья сделал подарок чтобы показать мою проблему, вы можете увидеть, что данные отправляются не в режиме реального времени, но когда сокет закрыт, все данные сбрасываются.