在Kotlin中创建一个TCP侦听器
我现在正在给Kotlin一个项目,我正在工作。 这个项目需要我打开一个Socket并在一个端口上侦听TCP包,这样我才能解析它们。 在Java中,如果使用缓冲区读取器,套接字和服务器套接字来定义所引用的variables,则以下方法可用:
while((CurrentLine = ClientBufferReader.readLine()) != null){FullString += CurrentLine}
但是,在Kotlin中,这是行不通的,因为无法评估任务。 我怎么能在Kotlin中find相同的结果呢?
在这个特定的情况下,你可以重写这个
val FullString = generateSequence { ClientBufferReader.readLine() }.joinToString(separator = "")
这是可行的,因为generateSequence
计算传递给它的lambda,直到它返回null
并且发出所有非null项。 joinToString
然后使用StringBuilder
有效地创建一个连接的String
。
一般来说,这个模式
while((x = foo()) != something) { bar() }
可以被替换
var x = foo() while (x != something) { bar() x = foo() }
虽然显然这是更详细的。
还有一点需要注意:你的variables名不能以大写字母开头。 请参阅样式指南了解更多信息。