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