我最近在 groovy 中创建了一个 tcp 服务器,我想知道如何让它的行为类似于 telnet。
例如,我运行我的 tcp 服务器并打开 cmd 提示符以 telnet 脚本的端口并向其发送它正在寻找的命令。大多数命令发回一行/一个字的信息。但是有一些会发回一个大字符串(类似于一段信息)。它适用于 telnet。
但是,当我创建我的 tcp 客户端时,除了第一行信息之外,我无法让它接受任何内容。
我使用 readLine() 而不是 readLines() 因为如果我使用 readLines() 它会挂在那里并且不允许我发送下一个命令。
我也尝试过类似的东西:(伪代码)
while((r.readLine()) !=null) {
def a = r.readLine()
}
它也像 readLines() 一样挂在那里
如果您需要查看代码的外观,请查看此处:Groovy Tcp 客户端/服务器发送地图
我的 sendMessage 函数在这些函数上有所不同,但我将其更改为相同,并且正在使用客户端上的函数。
编辑
针对提供的第一个答案...
做好你提到的事情以及类似的事情:
while((line = r.readLine()) !=null) {
println line
}
两者都有效,但我发送命令的方式以某种方式干扰了它的功能。
如果您在我的来源(在上面提供的链接上)达到顶峰,也许您会发现为什么它不能与这些解决方案一起正常工作。