Слияние кода завершено, страница обновится автоматически
private suspend fun sendMessage(data: String, connection: WebSocketConnection) = connection.useAwait {
(1..10).forEach {
connection.sendText("WebSocket ${data}. count: $it, time: ${Date()}")
delay(1000)
}
}
private fun onMessage(frame: Frame) {
if (frame is TextFrame) {
println(frame.payloadAsUTF8)
}
}```
Пример TCP-сервера и клиента:
```kotlin
fun main() {
`$`.tcpServer().onAcceptAsync { connection ->
launch { writeLoop("Сервер", connection) }
launch { readLoop(connection) }
}.listen("localhost", 8090)
`$`.tcpClient().connectAsync("localhost", 8090) { connection ->
launch { writeLoop("Клиент", connection) }
launch { readLoop(connection) }
}
}
private suspend fun readLoop(connection: TcpConnection) = connection.useAwait {
while (true) {
try {
val buffer = connection.read().await()
println(BufferUtils.toString(buffer))
} catch (e: Exception) {
println("Соединение закрыто.")
break
}
}
}
private suspend fun writeLoop(data: String, connection: TcpConnection) = connection.useAwait {
(1..10).forEach {
connection.write(toBuffer("TCP ${data}. count: $it, time: ${Date()}"))
delay(1000)
}
}```
# Контактная информация
- E-mail: qptkk@163.com
- QQ Group: 126079579
- Wechat: AlvinQiu
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )