Golang 实现Socket服务端和客户端使用TCP协议通讯
Socket服务器是网络服务中常用的服务器。使用go语言实现这个业务场景是很容易的。这样的网络通讯,需要一个服务端和至少一个客户端。我们计划构建一个这样的通讯工程。服务端...
Socket服务器是网络服务中常用的服务器。使用go语言实现这个业务场景是很容易的。这样的网络通讯,需要一个服务端和至少一个客户端。我们计划构建一个这样的通讯工程。服务端...
前言viper 支持Yaml、Json、 TOML、HCL 等格式,读取非常的方便。安装go get github.com/spf13/viper如果提示找不到golang.org/x/text/这个库,是因为golang.org/x/text/这个库...
前言​说在最前面,我是一个外表谦让,内心狂热,外表斯文,内心贪玩的一个普通人。我的职业是程序员,是一个golang语言爱好者,一半是因为golang好用,一半是因为其他语言学不好。...
vendorvendor概念最早是由Keith提出,用来存放依赖包。在版本1.5出现。例如gb项目提供了一个名为gsftp的示例项目,它有一个gsftp程序,在标准库之外有三个依赖项。golang.org/x/c...
分片读取http超大文件流Golang中的HTTP发送get请求,在获取内容有两种情况。Golang发送http get请求方式resp, err := http.Get(sendUrl)if err != nil { fmt.Println("出错",...
我就废话不多说了,大家还是直接看代码吧~/** 二分幂法 求x^n */// 求整数幂package mainimport ( "fmt" "math")func main() { var x float64 var n int fmt.Scanf("%f...
Go实在是太棒了。一处编译,处处运行,没有依赖,毫无麻烦!不过麻烦的事情来了。我们写一个程序,就是想在别人的电脑上运行的。然而,Go语言的默认机制,会泄漏我们的一些信息,虽然不多,但...
最近发现golang社区里出了一个新星的微服务框架,来自好未来,光看这个名字,就很有奔头,之前,也只是玩过go-micro,其实真正的还没有在项目中运用过,只是觉得 微服务,grpc 这些很高大尚...
一、项目简介本项目主要实现的功能是ftp客户端不断地将xml文件和jpg文件实时地上传到服务器,当然也可以是其他格式的文件。每当ftp客户端取到一个文件之后,将文件上传到服务器...
上次写了一个2行实现一个静态服务器的文章今天群里有个哥们是这么写居然返回的是404 见鬼了嘛??http.handle("/js", http.FileServer(http.Dir("js"))http.ListenAndServe("80...
什么是运算符?运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以分为5种类型:算术运算符...
牛顿法求平方根原理计算机常用循环来计算F的平方根.从某个猜测的x值开始,根据x^2与F的近似度来调整x,产生一个更好的猜测:x -= (x * x - F) / (2 * x)重复调整过程,猜测的结...
在Server和Client通讯中,由于网络等原因很可能会发生数据丢包的现象。如果数据缺失,服务端接收的信息不完整,就会造成混乱。我们需要在Server和Client之间建立一个通讯协议,通过...
例子:http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))当访问localhost:xxxx/tmpfiles时,会路由到fileserver进行处理当访问U...
golang访问数据库记录SQL语句:使用的包为:1:github.com/arthurkiller/rollingwriter //写入日志包2: github.com/go-xorm/xorm //xorm包具体实现为:package main import ( "time"...
简单的用法package main import ( _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "log") //定义结构体(xorm支持双向映射)type User struct { User_id int...
golang在给结构体赋值初始值时,用:分割k,v值 x := ItemLog{ Id: GetUuid(), ItemId: u.Id, UsrId: "123", Name: u.Name, Price: u.Price, Desc: u...
1. 获取当前时间字符串和时间戳package mainimport ( "fmt" "time")func main() { now := time.Now().UTC() // 显示时间格式: UnixDate = "Mon Jan _2 15:04:05 MST 200...
两个例子package main import ( "fmt" "time") func Process1(tasks []string) { for _, task := range tasks { // 启动协程并发处理任务 go func() { fmt.Printf("Worker...
1.首先初始化conf配置把kafka和ES的地址配置好还有一个日志方便查看配置信息如下 用到的库是github.com/astaxie/beego/config[logs]log_level = debuglog_path = "./logs/l...
golang默认的time.Time类型在转为json格式时不是常用的2019-05-08 10:00:01这种格式,解决办法是自定义一个时间类型,例如type myTime time.Time ,然后针对myTime实现Marshaler...
依次见例子代码:p1.gopackage p1import "fmt" //1.1var x float32 = 1.2 //1.2func init() { //1.3 fmt.Printf("p1 package, x:%f\n", x) //1.4}func Donothing() { fmt.P...
运行一段程序,警告:service/mysqlconfig.go:63::error: golang.guazi-corp.com/tools/ksql-runner/model.CreatingMysqlMongodbRecord composite literal uses unkeyed fields...
Time类型Now方法表示现在时间。func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time返回现在的时间,func (t Time) Unix() int64将时间转...
前言在看一个底层库的的时候,看到了一个比较奇怪的写法,于是乎有了本文。主要探讨两个问题:1.利用编译来判断Golang接口是否实现2.延伸出的make和new的区别正文1.利用编译来判...
前言defer语句被用于预定对一个函数的调用。我们把这类被defer语句调用的函数称为延迟函数。而defer 延迟语句在其他编程语言里好像没有见到。应该是属于 Go 语言里的独有的...
失败的类型断言,返回的值为最近断言类型的零值代码入下:func main() { var data interface{} = "ehoo" if res, ok := data.(int); ok { fmt.Printf("int res:%d\n", res) } e...
实现目的:实现字符串切片去重,只是两个字符完全相同时,去除一个。实现方式:考虑两种,一种是常规的双重循环去除,另一种是利用map的key的唯一性实现。1、通过双重循环来过滤重复元...
我就废话不多说了,大家还是直接看代码吧~package main import ( "fmt" "time" "sync" "sync/atomic") func main() { test1() test2()} func test1() { var wg sync.WaitGrou...
一、错误案例package mainimport ( "fmt" "time")var TestMap map[string]stringfunc init() { TestMap = make(map[string]string, 1)}func main() { for i := 0; i < 1000...
我就废话不多说了,大家还是直接看代码吧~cmd := exec.Command("cmd") in := bytes.NewBuffer(nil) cmd.Stdin = in//绑定输入 var out bytes.Buffer cmd.Stdout = &out //绑...
一句话总结:如果接口A实现了接口B中所有方法,那么A可以转化为B接口。package optionstype IPeople interface { GetName() string}type IPeople2 interface { GetName() strin...
一、获取当前目录下的文件或目录信息(不包含多级子目录)func main() { pwd,_ := os.Getwd() //获取文件或目录相关信息 fileInfoList,err := ioutil.ReadDir(pwd) if err !=...
我就废话不多说了,大家还是直接看代码 吧~package mainimport ( "fmt" "sort")type Person struct { Name string Age int}func main() { p1 := Person{"Tom",20} p2 := Pers...
Alpine介绍Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上...
baliance/gooxmlgooxml是可以对整个office document提供支持的golang库,功能很强大,这里简单给出对word文档的读取案例安装go get baliance.com/gooxml/go build -i baliance....
目标:在64位linux系统上编译出32位程序。操作:1.执行 go env 查看当前go环境配置2.执行 export GOARCH=386 配置go输出系统平台为32位3.go build 编译程序4.使用file main 指...
闲言少叙,本文主要是想介绍一个Golang开发常见的一个问题。然而,此问题对于初学者来说却经常容易陷入坑中。问题我在写一段代码时,使用了Golang的map数据结构,目的是想用map缓存...
我就废话不多说了,大家还是直接看代码吧~type Wait interface { // Register waits returns a chan that waits on the given ID. // The chan will be triggered when Trigg...
path/filepath包下的相关函数1. ToSlash函数func ToSlash(path string) string功能:将path中平台相关的路径分隔符转换成'/'例如:windows当前路径: D:\gopro\src\study,转换之...
1:安装redigogo get github.com/garyburd/redigo/redis2:引用redigoimport ( "github.com/garyburd/redigo/redis")3:连接Redisc, err := redis.Dial("tcp", "192.168.2.225:63...
我就废话不多说了,大家还是直接看代码吧~方法一://这种发放适用于string,int,float等切片,会对切片中的元素进行排序func SliceRemoveDuplicates(slice []string) []string {...
在“range” 语句中生成的数据的值其实是集合元素的拷贝。它们不是原有元素的引用。这就意味着更新这些值将不会修改原来的数据。我们来直接看段示例:package mainimport "fm...
goroutine 似乎不用解释太多,可以利用它实现多线程,也可以利用它来实现异步事件。在使用关键字go的过程中,常常会将用到sync.WaitGroup,如下一段代码。package mainimport ( "fm...
1、使用定时器2、使用这种方式go function() func function() { // TODO 具体逻辑 // 每5分钟执行一次 time.AfterFunc(5*time.Minute, function)}补充:Golang:每天零点定时...
我就废话不多说了,大家还是直接看代码吧~func main() { var a chan string a =make(chan string) go sendDataTo(a) go timing() getAchan(10*time.Second,a)}func send...
我就废话不多说了,大家还是直接看代码吧~func ReadLine(fileName string) ([]string,error){ f, err := os.Open(fileName) if err != nil { return nil,err } buf := bufio...
一.GO语言开发包1.什么是GO语言开发包go 语言开发包其实是对go语言的一种实现,包括相应版本的语法, 编译, 运行, 垃圾回收等, 里面包含着开发 go 语言所需的标准库, 运行时...
背景最近在做一个服务发现/注册的agent, 各个服务需要通过这个agent来注册自己的服务,在完成开发后,测试性能时发现性能达不到要求,通过pprof 来确认cpu主要耗费在gc上,分析结果...
Go的error比较灵活.但是自身对error处理的机制有不太好用,我们可以自定义错误输出:
只要所有实现了Error()方法的对象都可以, 这里给个比较简单的demo,后续整理一个error的...