从0到1制作一个go语言服务器 (一) 配置

配置

我们在做一个项目的时候肯定会有各种各样的配置 比如说port ip等等

在写代码的时候肯定不可能把这些配置写死 不然后面迁移机器的时候想改个数据还得改代码

所以说我们会有专门的配置文件和读取配置文件来进行这些操作

我们这个项目使用的是 goconfig

它的用法也十分的简单

我们首先要创建一个 config.ini 文件 里面的配置格式类似这么写

cpp 复制代码
[login_server]
host = 127.0.0.1
port = 8003

其中 [login_server] 是一个session 我们读取value的时候就是读取每个 session下的value 比如说后面还可能有 [web_server] 的ip和port等

配置读取

我们需要创建创建一个新的config.go文件来读取所有的配置文件

读取配置的代码都是固定的 可以在github上看看 也可以直接复制下面的代码去试验

cpp 复制代码
package config

import (
	"fmt"
	"os"

	"github.com/Unknwon/goconfig"
)

const strFilename = "/conf/conf.ini"

var File *goconfig.ConfigFile

func init() {
	var err error

	strCurrentDir, err := os.Getwd()
	if err != nil {
		panic(err)
	}

	// 获取命令行的第二个参数
	if len(os.Args) > 1 {
		strCurrentDir = os.Args[1]
	}

	strFilePath := strCurrentDir + strFilename

	File, err = goconfig.LoadConfigFile(strFilePath)
	if err != nil {
		panic(err)
	}


}

最终我们会有一个main文件

cpp 复制代码
package main

import (
	"STZB/config"
	"fmt"
)

func main() {
	host := config.File.MustValue("login_server", "host", "127.0.0.1")
	port := config.File.MustValue("login_server", "port", "8003")
	fmt.Println("host: ", host)
	fmt.Println("port: ", port)
}

能够读取出上面的数据就是成功了

相关推荐
余额瞒着我当琳7 小时前
C++ map 底层与AVL 树
开发语言·c++·算法
wdfk_prog7 小时前
Wi-Fi Direct 教程 07:第一次 P2P Scan 如何真正发出——WPS/P2P IE、radio work 与 driver request
运维·服务器·ubuntu·wifi-direct
喆星时瑜7 小时前
R语言向量语法的详细教程
开发语言·r语言
茉莉玫瑰花茶7 小时前
GO [ 单元测试 ]
golang·单元测试·log4j
乃嘿仔7 小时前
AI 热点日报 · 2026-10-01
开发语言·人工智能·php
雪落漂泊8 小时前
Linux基本指令(上)
linux·运维·服务器
重生之小比特8 小时前
【C++进阶】异常
开发语言·c++
ai小陈8 小时前
GPU服务器租用部署实战:用systemd守护模型推理服务
运维·服务器·人工智能·ai·php·gpu算力
开开心心_Every8 小时前
文件夹批量创建工具支持同级和多层级
运维·服务器·游戏·jupyter·智能手机·pdf·postman
朝朝辞暮i8 小时前
C++ 第 15 课:指针 * 和地址 &
开发语言·c++