first commit

This commit is contained in:
2026-05-24 21:15:44 +03:00
parent ea2cf48281
commit 544624ea0c
18 changed files with 640 additions and 0 deletions

66
src/main/kotlin/Server.kt Normal file
View File

@ -0,0 +1,66 @@
package su.sonoma
import kotlinx.coroutines.*
import java.net.ServerSocket
import java.net.Socket
import java.io.InputStream
import java.io.DataInputStream
fun startServer() = runBlocking {
val server = ServerSocket(9093)
println("Server started")
while (true) {
val client = server.accept()
launch {
handle(client)
}
}
}
suspend fun handle(socket: Socket) {
val input = socket.getInputStream()
val output = socket.getOutputStream()
val buffer = ByteArray(32768)
while (true) {
val hi = input.read()
val lo = input.read()
val len = (hi shl 8) or lo
DataInputStream(input).readFully(buffer, 0, len)
val packet = buffer.copyOf(len)
// 🌍 forward to internet
val response = forwardPacket(packet)
output.write(response.size shr 8)
output.write(response.size)
output.write(response)
}
}
fun forwardPacket(packet: ByteArray): ByteArray {
// ⚠️ simplified: we assume HTTP (not real VPN parsing yet)
val host = "example.com"
val port = 80
val socket = Socket(host, port)
socket.getOutputStream().write(packet)
val response = socket.getInputStream().readBytes()
socket.close()
return response
}