Skip to content

Instantly share code, notes, and snippets.

@philsjh
Created December 5, 2018 00:32
Show Gist options
  • Save philsjh/50fa11ffed8145a1503986b16c1d4cbc to your computer and use it in GitHub Desktop.
Save philsjh/50fa11ffed8145a1503986b16c1d4cbc to your computer and use it in GitHub Desktop.
package socket
import (
"bufio"
"fmt"
"github.com/romana/rlog"
"log"
"net"
"os"
"strings"
)
func Listen(address string, port int) bool {
listen, err := net.Listen("tcp4", fmt.Sprintf("%v:%d", address, port))
defer listen.Close()
if err != nil {
rlog.Errorf("%v\n", err.Error())
os.Exit(1)
return false
}
rlog.Infof("Listening on IP: %s - Port: %v", address, port)
for {
conn, err := listen.Accept()
if err != nil {
log.Fatalln(err)
continue
}
go handler(conn)
}
return true
}
func handler(conn net.Conn) {
defer conn.Close()
var (
r = bufio.NewReader(conn)
)
for {
buf, isPrefix, err := r.ReadLine()
if !isPrefix {
data := string(buf)
if err != nil {
rlog.Errorf("Receive data failed:%s", err)
return
}
rlog.Infof("%v", data)
} else {
// something here?
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment