Я недавно создал tcp-сервер в groovy, и мне интересно, как заставить его вести себя подобно telnet.
Например, я запускаю свой tcp-сервер и открываю приглашение cmd, чтобы telnet-порт портаСценарий и отправить ему команды, которые его ищут.Большинство команд отправляют обратно одну строку / слово информации.Однако есть несколько, которые отправляют обратно большую строку (аналогично параграфу информации).Он отлично работает с telnet.
Однако, когда я создаю свой tcp-клиент, я не могу заставить его принимать что-либо, кроме первой строки информации.
Я использую readLine ()вместо readLines (), потому что, если я использую readLines (), он зависает там и не позволяет отправить следующую команду.
Я также попробовал что-то вроде: (psuedocode)
while((r.readLine()) !=null) {
def a = r.readLine()
}
Который также просто висит там, как readLines ()
Если вам нужно посмотреть, как выглядит код, проверьте здесь: Groovy Tcp клиент / сервер отправляет карты
MyФункция sendMessage отличается от них, но я изменил ее, чтобы она была такой же, и я использую ту, которая у меня есть на клиенте.
РЕДАКТИРОВАТЬ
В ответ на первый предоставленный ответ ...
Хорошо делает то, что вы упомянули, а также что-то вроде:
while((line = r.readLine()) !=null) {
println line
}
Оба работают, но способ отправки команд каким-то образом влияет на его функциональность.
Если вы берете пик у моего источника (по ссылке, указанной выше), возможно, вымогу определить, почему он не работает должным образом с этими решениями.