Edgar Avuzi
11/16/2024, 2:17 PM.use
functions like that?
Please take a lookEdgar Avuzi
11/16/2024, 2:17 PMimport java.net.ServerSocket
import java.io.PrintWriter
fun main() {
val serverSocket =
ServerSocket(6379).apply {
reuseAddress = true
}
while (true) {
serverSocket.accept().use { socket ->
socket.getOutputStream().use { out ->
PrintWriter(out, true).use { writer ->
writer.print("+PONG\r\n")
}
}
}
}
}
hfhbd
11/16/2024, 4:26 PMephemient
11/16/2024, 7:51 PMephemient
11/16/2024, 7:58 PMuse
is fine but doesn't actually need to be used 3 times:
• `PrintWriter`'s constructor doesn't throw and closing it closes the underlying OutputStream
, so it could just be
val out = socket.getOutputStream()
PrintWriter(out, true).use { writer ->
• you're not actually making use of any PrintWriter
functionality, might as well use
socket.getOutputStream().bufferedWriter().use { writer ->
• Socket.close()
closes its own input and output streams, so you don't need to separately close them
serverSocket.accept().use { socket ->
val writer = socket.getOutputStream().bufferedWriter()
Edgar Avuzi
11/17/2024, 10:19 AM