tricrypt/cmd/server/main.go

53 lines
1007 B
Go
Raw Normal View History

2024-02-23 14:28:59 +01:00
package main
import (
"bufio"
"fmt"
"log"
"net"
"os"
"git.qowevisa.me/Qowevisa/gotell/env"
)
func main() {
2024-02-23 15:14:35 +01:00
url := fmt.Sprintf("127.0.0.1:%d", env.Port)
listener, err := net.Listen("tcp", url)
2024-02-23 14:28:59 +01:00
if err != nil {
log.Fatal(err)
}
defer listener.Close()
2024-02-23 15:14:35 +01:00
fmt.Printf("Server is listening on %s\n", url)
2024-02-23 14:28:59 +01:00
for {
conn, err := listener.Accept()
if err != nil {
log.Print(err)
continue
}
go handleConnection(conn)
}
}
func handleConnection(conn net.Conn) {
defer conn.Close()
fmt.Printf("Client connected: %v\n", conn.RemoteAddr())
scanner := bufio.NewScanner(conn)
for scanner.Scan() {
text := scanner.Text()
fmt.Printf("Received: %s\n", text)
_, err := conn.Write([]byte("Message received: " + text + "\n"))
if err != nil {
log.Printf("Failed to write to connection: %v", err)
break
}
}
if err := scanner.Err(); err != nil {
fmt.Fprintf(os.Stderr, "Error reading from connection: %s\n", err)
}
fmt.Printf("Client disconnected: %v\n", conn.RemoteAddr())
}