Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: