Skip to content

Instantly share code, notes, and snippets.

@yan-aint-nickname
Created December 11, 2023 08:44
Show Gist options
  • Save yan-aint-nickname/7167395291c69746b091f307ac7a6238 to your computer and use it in GitHub Desktop.
Save yan-aint-nickname/7167395291c69746b091f307ac7a6238 to your computer and use it in GitHub Desktop.
Dead simple terminal chat in go
package main
import (
"fmt"
"io"
"net"
)
const (
SERVER_HOST = "localhost"
SERVER_PORT = "9988"
SERVER_TYPE = "tcp"
)
func main() {
server, err := net.Listen(SERVER_TYPE, SERVER_HOST+":"+SERVER_PORT)
if err != nil {
panic(err)
}
defer server.Close()
fmt.Printf("Listening %s:%s\n", SERVER_HOST, SERVER_PORT)
for {
connection, err := server.Accept()
if err != nil {
panic(err)
}
go func(conn net.Conn) {
defer conn.Close()
for {
buffer := make([]byte, 1024)
mLen, err := conn.Read(buffer)
if err != nil {
if err != io.EOF {
fmt.Println("Error getting msg")
}
break
}
fmt.Println(buffer)
fmt.Printf("Received: %s", string(buffer[:mLen]))
}
}(connection)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment