@@ -8,10 +8,9 @@ import io.ktor.network.sockets.Datagram
88import io.ktor.network.sockets.InetSocketAddress
99import io.ktor.network.sockets.aSocket
1010import io.ktor.network.sockets.isClosed
11- import io.ktor.utils.io.core.remaining
11+ import io.ktor.utils.io.core.ByteReadPacket
12+ import io.ktor.utils.io.core.readBytes
1213import kotlinx.coroutines.Dispatchers
13- import kotlinx.io.Buffer
14- import kotlinx.io.readByteArray
1514import java.net.ConnectException
1615import java.net.InetAddress
1716
@@ -51,15 +50,15 @@ class UdpStreamSocketKtor(
5150 }
5251
5352 override suspend fun write (bytes : ByteArray ) {
54- val datagram = Datagram (Buffer (). apply { write( bytes, 0 , bytes.size) } , address)
53+ val datagram = Datagram (ByteReadPacket ( bytes) , address)
5554 socket?.send(datagram)
5655 }
5756
5857 override suspend fun read (): ByteArray {
5958 val socket = socket ? : throw ConnectException (" Read with socket closed, broken pipe" )
6059 val packet = socket.receive().packet
6160 val length = packet.remaining.toInt()
62- return packet.readByteArray ().sliceArray(0 until length)
61+ return packet.readBytes ().sliceArray(0 until length)
6362 }
6463
6564 override fun isConnected (): Boolean = socket?.isClosed != true
0 commit comments