golang创建web监听在tcp6而非tcp4的解决

Golang评论1,341阅读模式

在用golang建立web时,不管是用原生库还是使用gin框架,发现服务器起来后最终都会监听到tcp6。查stackoverflow得知,如果想要默认监听tcp4/tcp6需要修改下源码。

修改$GOROOT/src/net/http/server.go

2813行/2842行处函数(视golang版本而定)

func (srv *Server) ListenAndServe() error {
	if srv.shuttingDown() {
		return ErrServerClosed
	}
	addr := srv.Addr
	if addr == "" {
		addr = ":http"
	}
	ln, err := net.Listen("tcp", addr)
	if err != nil {
		return err
	}
	return srv.Serve(ln)
}

修改前这一行:ln, err := net.Listen("tcp", addr)

改完后为:ln, err := net.Listen("tcp4", addr)

然后,再启动服务,成功监听到tcp4。

golang格式化占位符 Golang

golang格式化占位符

golang使用fmt包来实现格式化输出,各类占位符汇总如下: 结构体 # 定义示例类型和变量 type Human struct { Name string } var people = Human...
linux新磁盘分区操作 Linux

linux新磁盘分区操作

新加一块磁盘进行分区,步骤如下。 查看 查看磁盘及分区 lsblk 查看磁盘详细分区情况 fdisk -l 建立分区 建立磁盘主分区 采用这种方式,两个分区都设为主分区 fdisk /dev/sdb ...