Golang Notes

Golang使用过程中的一些笔记

TCP

  • 使用net.Listen()来接受tcp请求时候,如果不指定addr,则会随机一个端口
    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
    package main

    import (
    "fmt"
    "log"
    "net"
    )

    func main() {
    l, err := net.Listen("tcp", "")
    if err != nil {
    log.Fatal(err)
    }
    fmt.Println(l.Addr())

    for {
    c, err := l.Accept()
    if err != nil {
    log.Println(err)
    continue
    }

    go func(c net.Conn) {
    c.(*net.TCPConn).SetKeepAlive(true) // nolint: errcheck
    // todo something
    }(c)
    }
    }