Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Go by Server ( 4 years ago )
package main
import (
"bufio"
"fmt"
"net"
"os"
"strings"
)
func t_body(conn net.Conn) {
for {
data, err := bufio.NewReader(conn).ReadString('\n')
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
message := string(data)
if message == "quit" {
fmt.Printf("%s quitted", conn.RemoteAddr().String())
return
}
fmt.Printf("%s: %s", conn.RemoteAddr().String(), message)
to_send := strings.Trim(message, "\n") + " echoed by server"
fmt.Fprintf(conn, "%s\n", to_send)
}
}
func main() {
arguments := os.Args
if len(arguments) != 2 {
fmt.Fprint(os.Stderr, "Usage:\tgo run server.go PORT")
return
}
port := arguments[1]
listener, err := net.Listen("tcp4", ":"+port)
if err != nil {
fmt.Fprint(os.Stderr, err)
return
}
fmt.Printf("Server listening at port %s\n", arguments[1])
for {
conn, err := listener.Accept()
defer listener.Close()
go func() {
if err != nil {
fmt.Fprint(os.Stderr, err)
return
}
t_body(conn)
}()
}
}
Revise this Paste