47 lines
719 B
Go
47 lines
719 B
Go
package main
|
|
|
|
import (
|
|
"io"
|
|
"log"
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
type newWriter struct {
|
|
conn io.Writer
|
|
}
|
|
|
|
func (nw newWriter) Write(p []byte) (n int, err error) {
|
|
prefix := []byte("curr time is ")
|
|
prefix = append(prefix, p...)
|
|
n, err = nw.conn.Write(prefix)
|
|
return
|
|
}
|
|
|
|
func handleConn(conn net.Conn) {
|
|
defer conn.Close()
|
|
|
|
for {
|
|
_, err := io.WriteString(newWriter{conn}, time.Now().Format("15:04:05\n"))
|
|
if err != nil {
|
|
return
|
|
}
|
|
time.Sleep(1 * time.Second)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
listener, err := net.Listen("tcp", ":9090")
|
|
if err != nil {
|
|
log.Fatalf("Shit happened %s",err)
|
|
}
|
|
for {
|
|
conn, err := listener.Accept()
|
|
if err != nil {
|
|
log.Printf("Error is %s",err)
|
|
continue
|
|
}
|
|
go handleConn(conn)
|
|
}
|
|
}
|