summaryrefslogtreecommitdiff
path: root/sock2file/sock2file.go
blob: 344344210ad36edc00fb392e6e450e8db8987240 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main

import (
    "fmt"
    "net"
    "time"
    "os"
    "bufio"
)

func main() {
    ln, _ := net.Listen("tcp", ":8000")
    file, _ := os.Create("./test.logs")
    writer := bufio.NewWriter(file)

    for {
        conn, _ := ln.Accept()
        conn.SetReadDeadline(time.Now().Add(time.Second))
        recvData := make([]byte, 1024)
        n, err := conn.Read(recvData)
        if n > 0 {
            fmt.Println("Data Received")
            mystring := string(recvData[:])
            fmt.Println(mystring)
            written, err := writer.WriteString(mystring)
            if err != nil {
                fmt.Printf("Error %s", err)
            }
            fmt.Printf("Written: %d\n", written)
            fmt.Printf("Available: %d\n", writer.Available())
            fmt.Printf("Buffered : %d\n", writer.Buffered())
        }
        if e, ok := err.(interface{ Timeout() bool }); ok && e.Timeout() {
            fmt.Println("Timeout")
        } else if err != nil {
            fmt.Println("Error")
        }
        conn.Close()
    }
}