Я пытаюсь отправить данные с сервера Node JS net в приложение java. Вот мой JS код:
var server = net.createServer(function (c) { //'connection' listener
console.log('server connected');
c.on('end', function () {
console.log('server disconnected');
});
c.on('data', (d) => {
console.log(data);
});
c.pipe(c);
setInterval(() => {
let obj = { "foo": "bar" };
c.write(JSON.stringify(obj));
}, 3000)
});
server.listen(58430, function () { //'listening' listener
console.log('server bound');
});
Так что сейчас я просто отлаживаю и пытаюсь отправить данные (foo: bar) с интервалом.
Вот мой java сторона, работающая в al oop:
InputStreamReader inFromClient = new InputStreamReader(client.getInputStream());
while (running.get()) {
String data = Tools.ReadUntilNull(inFromClient);
Log.debug("Received: " + data);
}
, где 'client' - это сокет, прослушивающий правильный порт. 'running' - это логическое значение атома c, которое имеет значение true.
Tools.ReadUntilNull соответствует этому:
public static String ReadUntilNull(InputStreamReader reader) throws IOException {
StringBuilder sb = new StringBuilder();
char[] results = new char[1];
int bytes_read = reader.read(results);
while (results[0] != 0x00 && bytes_read == 1) {
sb.append(results[0]);
bytes_read = reader.read(results);
}
return sb.toString();
}
Мое Node.JS приложение регистрирует, что сервер связан и подключен. Только когда я отправляю данные, я не могу получить их в моем Java клиенте.
Я просто узнаю о java, поэтому, пожалуйста, будьте осторожны со мной ^^