Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "io"
- "log"
- "net"
- "os"
- "strconv"
- "strings"
- )
- const (
- Message = "Pong"
- //StopCharacter = "\r\n\r\n"
- )
- func SocketServer(port int) {
- listen, err := net.Listen("tcp4", ":"+strconv.Itoa(port))
- if err != nil {
- log.Fatalf("Socket listen port %d failed,%s", port, err)
- os.Exit(1)
- }
- defer listen.Close()
- log.Printf("Begin listen port: %d", port)
- for {
- conn, err := listen.Accept()
- if err != nil {
- log.Fatalln(err)
- continue
- }
- go handler(conn)
- }
- }
- func handler(conn net.Conn) {
- defer conn.Close()
- var (
- buf = make([]byte, 1024)
- r = bufio.NewReader(conn)
- w = bufio.NewWriter(conn)
- )
- ILOOP:
- for {
- n, err := r.Read(buf)
- data := string(buf[:n])
- switch err {
- case io.EOF:
- break ILOOP
- case nil:
- log.Println("Receive:", data)
- w.Write([]byte("bien recu"))
- w.Flush()
- log.Printf("bien confirmé")
- if isTransportOver(data) {
- break ILOOP
- }
- default:
- log.Fatalf("Receive data failed:%s", err)
- return
- }
- }
- }
- func isTransportOver(data string) (over bool) {
- over = strings.HasSuffix(data, "\r\n\r\n")
- return
- }
- func main() {
- port := 3334
- SocketServer(port)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement