Go语言中文网 为您找到相关结果 372

go语言之http

go语言http 1、net/http 包提供的 http.ListenAndServe() 方法,在指定的地址监听该方法用于在指定的 TCP 网络地址 addr 进行监听,然后调用服务端处理程序来处理传入的连 接请求。该方法有两个参数:第一个参数 addr 即监听地址;第二个参数表示服务端处理程序, 通常为空,这意味着服务端调用 http.DefaultServeMux 进行处理,而服务端编写的业务逻 辑处理程序 http.Handle() 或 http.HandleFunc() 默认注入 http.DefaultServeMux 中。2.处理https请求 func ListenAndServeTLS(addr string, certFile string, keyFile strin...阅读全文

博文 2018-11-14 18:35:09 PowerMichael

Golang 逐行读取文件

golang的错误处理有点奇怪. 插入代码时候, 使用插入代码(推荐) 出现错误: 无法解析服务器的 DNS 地址。 使用插入代码, 直接是文本插入, 连着色都没有. 插入图片要地址, 不能上传. 下载客户端, 转到微软的网站时已经是: We can’t find that page. 写个博客都这么难比较失望. package jutil import ( "bufio" "io" "os" "strings" ) func ReadLine(fileName string, handler func(string)) error { f, err := os.Open(fileName) if err != nil { return err } buf := bufio.NewReade...阅读全文

博文 2015-02-24 03:00:00 zoltun

Go语言获取外网和本地IP

package main import ( "flag" "fmt" "io" "net" "net/http" "os" ) var get_ip = flag.String("get_ip", "", "external|internal") func main() { fmt.Println("Usage of ./getmyip --get_ip=(external|internal)") flag.Parse() if *get_ip == "external" { get_external() } if *get_ip == "internal" { get_internal() } } func get_external() { resp, err := http.Get("h...阅读全文

博文 2015-07-13 18:00:00 冷絮

go-sql-driver发生invalid connection(bad connection)解决方法讨论

在使用go-sql-driver过程中,有时候我发现会报invalid connection的错误,这个错误产生的原因设置了空闲连接不为0时,客户端拿到连接有可能是已经被服务端关闭了,此时就会发生invalid connection,网上有些解决方案是把空闲连接数设置0,不知道设置为0跟设置为50之类的性能有什么大的区别吗?跪求大神解答...阅读全文

苦逼程序员的10年

风险预警。本文属于毒鸡汤系列,经过文学渲染,读后或产生焦虑,有相关抵制者慎入。 十年,转瞬即逝,人生进入下半场。众生皆苦,万相本无。且看风云变幻,慢品苦辣酸甜。小姐姐味道微信公众号首发。 小胡,拼搏者 小胡很久没有笑过了。他在房价的次高点买了套超出自己承受能力的房子,紧接着老婆失业了,失业以后脾气变得特别的不好。他每天都下班很晚,最近终于鼓足勇气换了份离家近的工作,来省下每天的车费。他的技术很好,别人也是这么评价,但这次跳槽他并没有涨多少薪。心里乱乱的老觉得堵,家里环境太压抑,老母亲最近又和老婆掐了起来。他依然每天很晚下班,心烦了就工作。老板看在眼里,给他颁发了一个拼搏者奖杯。 今天团建后他开车回家,天很晚,他把头顶在方向盘上呆了很久。推开车门,他静静伫立一刹,把一个包装袋随手扔进垃圾桶。 ...阅读全文

博文 2019-06-05 09:32:39 小姐姐味道

GO微信小程序登录和支付

本文仅适用于微信小程序登录、支付golang服务器实现,而通用golang支付实现(支付宝、微信)请看另一篇。[官方文档]一、微信开发文档[微信支付][微信小程序服务器SDK][微信小程序客户端API]二、微信管理后台业务微信公众号管理后台,申请小程序,申请后需要注意两点: #. APPID、APPSECRET用于登录获取openid、sessionkey,其中openid用于支付API #. 开发配置小程序服务器域名和端口(eg: https://supercline.com:8090) 微信公众号商户后台:商户号(MCHID)和API支付密钥(APIKEY)三、HTTPS证书HTTPS服务器配置文档自己手动生成非认证调试证书Generate private key (.key) # Ke...阅读全文

博文 2019-08-21 16:03:11 SuperCLine

zookeepergolang客户端

官方客户端支持 go mod形式 ### demo ``` package main import ( "fmt" "github.com/go-zk/zk" "time" ) func main() { c, _, err := zk.Connect([]string{"127.0.0.1"}, time.Second) //*10) if err != nil { panic(err) } children, stat, ch, err := c.ChildrenW("/") if err != nil { panic(err) } fmt.Printf("%+v %+v\n", children, stat...阅读全文

开源项目 2020-06-30 10:25:48

golang微信支付服务端

一般来说,使用golang主要还是写服务端。所以本文主要讲golang在处理微信移动支付的服务端时的统一下单接口和支付回调接口,以及查询接口。 微信支付流程 下图是微信官网的支付流程描述: 图中红色部分就是微信支付中,我们的系统包括app,后台需要参与的流程。 其中需要后台也就是Server需要参与的流程有三个: 1. 统一下单并返回客户端 2. 异步通知结果回调处理 3. 调用微信支付查询接口 微信所有的接口都是以http RESTFul的API来提供,所以对于server而言其实就是call这些接口并处理返回值。 golang的服务端实现 1,调用统一下单接口 首先需要呼叫:https://api.mch.weixin.qq.com/pay/unifiedorder 这是微信的api,呼...阅读全文

博文 2015-12-23 14:00:01 xyzhaopeng

数据宝ChinaDataPay.com董事长汤寒林参加中国长江经济带发展高峰论坛

 2016年11月29日,由江西省商务厅指导、江西省服务外包产业协会主办的第三届中国长江经济带发展高峰论坛在江西南昌举行,本次论坛以“数据•融合•创新”为主题,围绕外包、制造业服务化、互联网+、电子商务、大数据、人工智能、移动互联网等新兴领域的发展为契机进行高端对话。贵州数据宝网络科技有限公司Chinadatapay.com董事长汤寒林作为特邀嘉宾发表《大数据行业的“淘宝”》的主题演讲,就如何高效开展大数据交易进行分享,并与华道数据、用友网络、中兴软件、联合金融、兴业证券等机构共同探讨大数据与服务贸易行业融合的创新模式。 ![1.jpg](http://studygolang.qiniudn.com/161207/6942fb4a9522d59f113aa36e38fabea3.jp...阅读全文

go post json 遇到的问题

想用go写一个客户端,发一个JSON数据到JAVA的服务端接口, 结果,JAVA接收的BODY一直是空,但是PYTHON写的服务端是OK的 网上查了方法 其中:一些方法 也试过了, type RequestBody struct { Status string `json:"status"` Region []string `json:"region"` Percent string `json:"percent"` Task_id string `json:"task_id"` } b, err := json.Marshal(rbody) body := bytes.NewBuffer([]byte(b)) (1) resp, err := http.Post(url, "applica...阅读全文

博文 2015-09-18 15:00:01 vance928

Go语言 GC优化经验分享

不想看长篇大论的,这里先给个结论,go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用。 想知道如何提前预防和解决问题的,请耐心看下去。 我们项目的服务端完全用Go语言开发的,游戏数据都放在内存中由go 管理。 在上线测试后我对程序做了很多调优工作,最初是稳定性优先,所以先解决的是内存泄漏问题,主要靠memprof来定位问题,接着是进一步提高性能,主要靠cpuprof和自己做的一些统计信息来定位问题。 调优性能的过程中我从cpuprof的结果发现发现gc的scanblock调用占用的cpu竟然有40%多,于是我开始搞各种对象重用和尽量避免不必要的对象创建,效果显著,CPU占用降到了10%多。 但我还是挺不甘心...阅读全文

博文 2014-10-11 18:00:01 abv123456789

服务端开发工程师(go语言)

岗位职责: 负责系统设计和核心代码开发(Go语言开发)。 任职要求: 有良好的编程风格和编写文档的习惯; 熟悉 HTTP、TCP/IP 等常见网络协议,有相关网络编程经验; 两年以上 Go 服务端开发经验优先; 熟悉缓存系统以及消息系统的对接工作实际经验优先。 有较强的责任心和学习能力,能承受一定工作压力。 薪水待遇: 15w起 具体面议 包五险一金 公司地点:浙江省杭州市余杭区仓前街道文一西路1338号海创大厦A座802室 投简历邮箱: shenqiang@aoukj.co...阅读全文

IE 11下载文件中文乱码解决(go/php)

IE 11下载文件的时候发现乱码. 网上查了下资料,了解了一下,主要是user-agent变了,不再是MSIE,面是rv:11.0这样,所以只要服务端判断出是IE 11,处理跟MSIE一样。 GO: func setDownloadFileName(w http.ResponseWriter, fileName, agent string) { if strings.Contains(agent, "MSIE") { fileName = url.QueryEscape(fileName) fileName = strings.Replace(fileName, "+", "%20", -1) } if strings.Contains(agent, "rv:") && strings.Co...阅读全文

博文 2016-04-07 21:00:06 rariki

golang启动一个简单的http服务

自http://www.01happy.com/golang-simple-http-server/ golang中开发http服务,可以用net/http包提供的功能。net/http包提供了非常全的功能,并且启动的http服务也非常稳定和高效,完全可以用在生产环境中。 package main import ( "fmt" "log" "net/http" ) // w表示response对象,返回给客户端的内容都在对象里处理 // r表示客户端请求对象,包含了请求头,请求参数等等 func index(w http.ResponseWriter, r *http.Request) { // 往w里写入内容,就会在浏览器里输出 fmt.Fprintf(w, "Hello golang h...阅读全文

博文 2018-11-26 17:34:43 石见君

关于我

三流学校,普通本科,天天搬砖写业务的小码农。 Android 中高级工程师,5年android开发经验。研究的不是很深,经验还可以。 后端也懂一点,.net core , python django, java spring, golang 等都能做一点点, CRUD 小能手,业务小能手。 web前端也还行, css,js React, 简单页面都能写,当然做后端的一般都能写。 学的比较杂,各种东西都懂一点皮毛。好处是自己能从头做一款产品,移动端,web端,后端自己全都能写。 目前专注在物联网,网络编程方面。对 netty , netty 在android 中的应用使用熟练,TCP/IP等协议都比较熟悉。熟悉蓝牙协议(BLE, FastBle) 有多个实际项目经验。 pump.jpg 之后还...阅读全文

博文 2019-05-22 20:34:40 lesliefang

招聘服务端开发工程师(go语言)

岗位职责: 负责系统设计和核心代码开发(Go语言开发)协助完成一些运维、DBA工作。 任职要求: 两年以上 C/C++/delphi/Go 服务端开发经验; 有良好的编程风格和编写文档的习惯; 熟悉 HTTP、TCP/IP 等常见网络协议,有相关网络编程经验; 服务端基础扎实,了解nginx、redis、mysql、消息队列等常见服务端组件; 有较强的责任心和学习能力,能承受一定工作压力。 薪水待遇: 15w起 具体面议 包五险一金 公司地点:浙江省杭州市余杭区仓前街道文一西路1338号海创大厦A座802室 投简历邮箱: shenqiang@aoukj.co...阅读全文

博文 2017-12-12 01:22:03 lllluolan

MySQL Binlog增量实时同步工具go-mysql-transfer

# 简介 go-mysql-transfer是使用Go语言实现的MySQL数据库实时增量同步工具。能够实时监听MySQL二进制日志(binlog)的变动,将变更内容形成指定格式的消息,发送到接收端。在数据库和接收端之间形成一个高性能、低延迟的增量数据(Binlog)同步管道。 # 特性 1、不依赖其它组件,一键部署 2、集成多种接收端,如:Redis、MongoDB、Elasticsearch、RabbitMQ、Kafka、RocketMQ,不需要再编写客户端,开箱即用 3、内置丰富的数据解析、消息生成规则;支持Lua脚本扩展,以处理更复杂的数据逻辑 4、集成Prometheus客户端,支持监控告警 5、支持高可用集群部署 6、数据同步失败...阅读全文

开源项目 2020-09-05 21:42:27

服务监控系统 Prometheus

Prometheus 是一个开源的服务监控系统和时间序列数据库。 ![image](http://static.oschina.net/uploads/space/2015/0205/082749_47Dp_5189.png) 特性: * 高维度数据模型 * 自定义查询语言 * 可视化数据展示 * 高效的存储策略 * 易于运维 * 提供各种客户端开发库 * 警告和报警 * 数据导...阅读全文

Elasticsearch的Go语言客户端开发包 Elastic-Go

Elastic是 [Elasticsearch](http://www.oschina.net/p/elasticsearch) 的 [Go](http://www.oschina.net/p/go) 语言客户端开发包。 快速入门:

// Create a client
client, err := elastic.NewClient()
if err != nil {
    // Handle error
}

// Create an index
_, err = client.CreateIndex("twitter").Do()
if err...阅读全文

【杭州】golang服务器端开发工程师 2名

golang服务器端开发工程师 2名: - 电商类产品的服务器端开发及维护,restful API开发; - 撰写业务、接口文档供前端使用; - 数据库设计、开发及维护和优化; 要求: - 1~2年Golang开发经验,熟练使用Golang进行Restful API接口开发; - 熟悉常用数据库MySql、PostgreSQL等,以及golang常见ORM进行数据库操作; - 有责任感、团队精神和良好的沟通能力; 其它 - 互联网电商类项目(2B)、小团队; - 工作以结果为导向,弹性工作时间、不打卡; - 期权激励; 工作地点:杭州市滨江海创园北楼D3008 薪水:6~15k 简历发送: hr@obenben.co...阅读全文

Golang在视频直播平台的高性能实践

http://toutiao.com/i6256894054273909249/ 熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量与重要性比较高,所以成为 golang 小试牛刀的首批高性能高并发服务。Golang在视频直播平台的高性能实践(含PPT下载)把大服务拆细, 然后服务化独立部署,更容易简化部署,也容易单点细节优化与升级。多数服务的能力是通用的,如平滑重启、多机房部署等。Golang在视频直播平台的高性能实践(含PPT下载)关于在线服务,如果 1000 万用户在线,即使每 30 秒一次在线 http 发送打点,那么也有每秒 30 万+的接口 qps。Golang 提供的 http server 性能非常好,一个普...阅读全文

博文 2016-03-03 03:00:00 jukan

golang连接rabbitmq

1.docke 中安装 rabbitmq docker pull rabbitmq 2.运行 rabbitmq docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:latest 3.下载 rabbitmq golang 客户端 go get github.com/streadway/amqp 4.send.go 1 package main 2 3 import ( 4 "log" 5 6 "github.com/streadway/amqp" 7 ) 8 9 func failOnError(err...阅读全文

博文 2018-08-22 18:30:01 chaselogs

用Golang实现redis

缘起 最近公司的第一个PHP转GO项目已经在生产环境稳定运行数周,又逢需求小年儿,得空分享下去年学GO过程中的练手项目Godis——用Golang实现的redis. redis3.0版本,代码简明精炼,再加上是Web后端程序员使用最多组件之一,熟悉redis原理并阅读多源码的开发者人数颇多,这个系列小文便不再对redis细节做过多介绍。不过,有必要系统性说明的地方仍然会以较大篇幅尝试解读。 进入正题 基本流程 Godis第一版的目标是“最基本的kv缓存”,feature list如下: 客户端/服务端交互 set/get 命令实现 AOF持久化实现 已经做到,再精简就等于没写的境界。遵循实际工作中的编码流程,先设计基本架构再填充实现的方式,Godis的架构图一步到位、毫无点缀: 原理分析 1...阅读全文

博文 2018-06-06 11:34:39 alphali

Golang在视频直播平台的高性能实践(含PPT下载)

编者按:本文是杨武明在 2 月 27 日在 Gopher 北京聚会演讲基础上整理而成。转载请注明来自高可用架构公众号「ArchNotes」。杨武明,熊猫 TV 首席架构师,曾担任奇虎 360 PC 网游技术架构负责人,前新浪微博平台资深后端开发、技术专家。对大型互联网架构有丰富的实践经验,擅长后端基础服务与组件开发,尤其高性能、高并发、大数据业务场景。熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量与重要性比较高,所以成为 golang 小试牛刀的首批高性能高并发服务。把大服务拆细, 然后服务化独立部署,更容易简化部署,也容易单点细节优化与升级。多数服务的能力是通用的,如平滑重启、多机房部署等。关于在线服务,如果 1000...阅读全文

博文 2016-10-20 20:00:01 u012798391

go实现的简易TCP的客户端和服务器

今天介绍golang版本的通信基础:基于TCP的客户端和服务器实现,参考书籍:The Way To Go 那时学习java的时候也是做过通信的,当时是socket编程,服务器监听某一个端口,然后客户机去连接,简单的聊天室就实现了。后来有变成多线程的聊天室,可以进行群聊什么的了,后期可以传图片传音乐,加上UI那一块儿,山寨QQ就OK了。现在我来用golang实现一下简易的聊天室,实现了客户机连接服务器,给服务器发消息,服务器接受消息,客户机退出,服务器可以收到退出信息,以及多个客户机同时连入一个服务器。主要的思路和java一样的,服务器监听某一个端口,客户机去连接,然后发送消息就OK了。上代码了。package main //服务器端import ( "fmt" "log" "net" //支...阅读全文

博文 2015-08-28 11:00:03 徐学良

golang 仿python pack/unpack

写得不完善也不完美 尤其是高低位转换那(go和c 二进制高地位相反 需要转换,还有go int转[]byte长度是4位),希望牛人看后指导一下 项目需要通过socket调取 客户端是go ,服务器端是python,由于需要封包解包,就参照python写的 python 的pack/unpack 参考 Python使用struct处理二进制(pack和unpack用法) package includes import ( "bytes" "encoding/binary" "fmt" _ "os" "strconv" "strings" ) type Protocol struct { Format []string } //封包 func (p *Protocol) Pack(args .....阅读全文

博文 2015-04-08 04:00:00 wangxusummer

golang 手游框架设计 - 本人浅陋的见解, 求达人指正

如有错误的地方,请同仁指正,非常感谢 第一种方式: 共3个进程 Login: 登陆服(同时用于聊天系统) socket长连接 Game: 游戏服(游戏逻辑处理) http短连接 Mysql: 数据库回写 socket 客户端socket连接login,保持长连接,验证成功后,向game服以http方式请求数据 game服向login服http方式验证该客户端是否已经正常登陆, 1: 没有登录则,game返回数据给客户,没有登录状态. 2: 已经登陆,则game返回所需数据给客户端. game将修改后的数据以sql语句形式发送给mysql服,同时记录当前sql到文件中用于备查. 使用单独login服的好处在于 客户端可以一直保持连接,并且login服逻辑处理少. 服务器压力小.同时在game服...阅读全文

博文 2014-10-04 19:27:45 984195889

互联网哪些职位最赚钱?开发哪些语言人才最贵最热门?

一、互联网人群求职意向 数据显示,互联网人对市场销售类职位最有意向,占比高达25.47%。技术类和运营类职位紧跟其后,分别占到23.55%和18.08%的比例。其中,市场销售类细分领域中,销售与市场营销职位更受关注;在技术类细分领域中,较受亲睐的是移动开发和后端开发;而在运营细分领域中,运营是最受欢迎的职位。二、互联网十大高/低薪职位 数据统计得知,CTO、CFO、COO、CMO、产品总监、技术总监、架构师、交互设计总监、网络推广、视觉设计总监是平均工资排名前十的互联网职位。其中,CTO最为吸金,以平均35.06万的年薪位居榜首。相比之下,前台、出纳、售后客服、售前咨询、助理、行政、产品助理、内容编辑、IT支持和Flash设计师成为了工资最低的十大岗位,前台的年薪仅有4.07万。大家可以对工...阅读全文

博文 2017-07-07 02:07:25 宝桃软件夏正行

golang ftp客户端示例 支持断点续传

package main import ( ftp4go "github.com/shenshouer/ftp4go" "fmt" "os" ) var( downloadFileName = "DockerToolbox-1.8.2a.pkg" BASE_FTP_PATH = "/home/bob/" // base data path in ftp server ) func main() { ftpClient := ftp4go.NewFTP(0) // 1 for debugging //connect _, err := ftpClient.Connect("172.8.4.101", ftp4go.DefaultFtpPort, "") if err != nil { fmt....阅读全文

博文 2015-11-18 13:00:02 shenshouer

go语言socket服务器端和客户端简单实现

服务器端: package main import ( "bufio" "fmt" "log" "net" ) func handleConnection(conn net.Conn) { defer conn.Close() data, err := bufio.NewReader(conn).ReadString('\n') if err != nil { log.Fatal(err) } fmt.Println(string(data)) fmt.Fprintf(conn, "who?\n") data, err = bufio.NewReader(conn).ReadString('\n') if err != nil { log.Fatal(err) } fmt.Println(s...阅读全文

比特币挖矿机开发之路(一)

开发分为两个部分,part A:LSP(Live Sequence Protocol)的开发 , part B:Distributed Bitcoin Miner 文档位置:https://github.com/modiziri/p1 正文: 【首先要说一下低级网络协议,之所以称之为低级是因为这种IP只能提供不可靠的数据传递服务,也就是说,这种简单的数据传输很容易导致延迟,丢包和重复。而且,还有最大字节的限制。不过,值得庆幸的是,低于1500字节的传输还是相对很安全的,不过要是超过,那就很容易发生上面的问题了。 几乎没有应用程序会直接用IP来传输数据,相应的,他们会用UDP和TCP代替。 UDP:也就是USER DATAGRAM PROTOCOL,用户数据包协议。这同样也是不可靠的数据服务,...阅读全文

博文 2014-10-07 21:23:25 modiziri

golang中如何使用http长链接(client端)

RESTFUL请求大部分都可以用短连接,即三次握手建立链接,交换数据完成后,释放掉的链接,短链接不会长时间占用端口号,实际项目中还会用到另一种,长链接,比如客户端发送RESTFUL请求,需要监测某一资源变化情况,服务端提供watch机制,在资源有变化时通知client端。 那么client端,相对于短链接,长链接应该怎么写呢? 和短链接基本一样,只需要循环读取server端返回的response即可。 package main import ( "fmt" "io" "log" "net/http" ) func main() { request, err := http.NewRequest("GET", "http://www.example.com/", nil) if err != ...阅读全文

博文 2017-08-15 08:05:09 风千寻艾

c语言客户端与golang服务端通信(网络字节序)

网络二进制数据转换: 总所周知,数据在tcp网络传输协议中传输的字节序是大端模式的,换句话说如果你要传输一个int32型的整数,那么假设其二进制小端模式表示为11111111111111110000000000000000那么其大端模式表示为00000000000000001111111111111111,利用c语言的htonl函数会将数据字节序转换成大端模式,在网络上面传输,接收端想解出原始数据只需要认为发送来的数据是大端模式,按照大端模式表示的数据解析便可 举个例子: 在C语言端发送一个int32_t数据过程如下: 发送端(c语言) char buf[100]; int32_t x = 100; ((int*)buf)[0] = htonl(x); send(clientfd, buf,...阅读全文

博文 2016-02-26 03:00:01 candycloud

国内的git选择,gitee.com,工蜂(git.code.tencent.com),code.aliyun.com

gitee.com OSchina推出的git仓库。服务端可以直接克隆github.com上的项目进来。 git.code.tencent.com 腾讯推出的git仓库,貌似不可以直接在服务器拉取其他git仓库的项目。而且蛋疼的是不支持go get code.aliyun.com 最后选定用这个了。可以在服务器端拉项目但是超时4分钟,基本拉不成。最重要的是支持go get...因为有golang项目,决定用他了! 阿里云注册地址: https://chuangke.aliyun.com/ 可以直接点击申请...阅读全文

博文 2019-06-18 17:02:45 毛毛v5

go简易udp客户端和服务器

go简易udp socket客户端和服务器 1.Socket编程 以前使用Socket编程时,一般是如下步骤 建立socket,socket 绑定socket,bind 监听,listen 接受连接,accept 接受/发送,recv/send Go语言对其进行了抽象和封装,刚开始接触有可能不太适应(譬如我第一天用的时候觉得API好难找……建议参考文档),后来发现用起来很爽 简单来说,客户端省去了很多!客户端只需要调用net.Dial()即可,服务器我这里还需要摸索一下,但是也是很简单了,不过流程感觉没简化- - 废话不多说,直接上代码 2.Server端 import ( "os" "fmt" "net" ) func checkError(err error){ if err != ni...阅读全文

博文 2016-04-01 02:00:00 qq_15437667

在go环境中架设protobuf

由于外网经常被封,把go版本的protobuf下载到本地,基本上是protobuf-master.zip这个形式。go版本的protobuf的下载地址为https://github.com/golang/protobuf将这个protobuf-master.zip加压后,改名为protobuf目录,并且在当前go工程的src目录下,新建一个子目录 github.com ,然后进入,再新建一个子目录golang然后把刚才改名为protobuf的目录,全部拷贝到刚才的golang文件夹里面 ok!在linux平台下,进入此protobuf文件夹,make 就OK了,会生成protoc可执行文件在gobin文件里里面,并且生成相关的.a文件在当前go工程的pkg文件夹里。在windows平台下,我...阅读全文

博文 2015-03-17 23:00:01 lyf445207638

华为云 路由器的天坑

问题在华为云服务器上使用Golang直接监听UDP端口,外部将无法访问这些端口,因为华为云服务器的路由不会允许外部与这些UDP端口直接通信。即便在配置了安全组以后亦是如此。解决方案Golang 建立连接后,使用 conn.Write() 写入部分数据即可(无需指定目的地)。如此一来,华为云的路由器便能放行此 UDP 端口。问题猜测华为云路由器的 NAT 算法应该是华为自己魔改的。尽管外网 IP 对 服务器内网IP是 1对1 的,但路由器对外部的访问存在限制。需要像 IP限制锥形 NAT 一样向往外发送数据后才能正常使用...阅读全文

博文 2020-05-05 05:32:43 鹿沐浔

golang 使用http 客户端 以及 服务端需要注意的Timeout问题

因为组内的错误日志被重定向另外一个日志里今天查看的时候发现一个进程有这样的输出 报一个IO WAIT 然后我查了一下一开始我搞错方向了以为是http 客户端的问题 查看了代码使用原生的http.Post() 函数很容易忽略一个问题 就是http.Post() http.Get()使用的DefaultClient 这个对象而这个对象如果你没有显式的对DefaultClient 的成员Timeout 赋值那么这个请求是没有设置超时时间的,将不会超时,使协程挂掉 已经被用烂了的图 解决这个问题简单一点的就是直接设置http.Clinet.Timeout,如果想更小粒度的控制net.Dialer.Timeout:限制建立TCP连接所花费的时间http.Transport.TLSHandshakeTi...阅读全文

博文 2018-12-20 16:34:49 熊同学雅典娜_6b66

招聘棋牌游戏服务端开发工程师2枚

坐标:上海 虹口区高阳路109号久游网二楼 简历接受邮箱: 43807671@qq.com qq:43807671 1、需要一枚牛逼的golang工程师来带领我们的棋牌后端团队。 2、也需要一枚初、中级的golang工程师与我们一起成长、学习。 3、有游戏开发经验的优先考虑。 4、其它不说了,人才快到碗里来吧,有梦有戏...阅读全文

go 实现的socks5服务器端

#####用go写的socks5服务器端代码: 1.默认只支持用户名密码的认证方式(username:abc , password:123),监听 tcp 8083 端口; 2.CMD支持TCP、UDP,不支持BIND,需要的可自行再实现; 3.支持ipv4、domain,目前不支持 ipv6; 4.建议客户端使用 proxycap, proxycap、SocksCap64 测试过能很好支持。(玩LOL,正常游戏)建议客户端不设置服务器端做DNS解析,效率相对会慢些; 5.注意服务端 防火墙 tcp 8083 端口开放及UDP协议全开放; 6.使用时有bug或问题欢迎留言; 7.想尝试用 go 写个简单的客户端,支持 lsp 劫持,配合服务器端做代...阅读全文

群晖 Docker 搭建自有 Leanote 服务

最近搞了台群晖 NAS,就想着搭建自己的云笔记服务。 为什么不使用已有云笔记平台? 之前接触过的云笔记主要是印象笔记和有道云笔记,各自都有非常致命的缺陷: 印象笔记: 国外的产品,由于各种不可描述的因素,功能上会有一些调整(阉割); 不支持 Markdown。 有道云笔记: bug 多; 国内这种不是太火或者说没怎么盈利的产品,始终会存在突然关掉的风险。 为什么选择 Leanote? 现在已经有不少开源的云笔记软件,谷歌上一搜一大把,选择 Leanote 主要还是一下原因: 之前和 Leanote 团队成员之一共事过,遇到什么问题咨询起来相对方便; Leanote 已有功能基本覆盖我的需求; 口碑看起来还可以。 搭建服务 既然选择了 Leanote,那就开始搭建呗。 Leanote 的后端服...阅读全文

博文 2018-08-10 18:35:00 yibuyisheng

Golang与Python的性能对比

Golang和Python的性能孰优孰劣,在开发者和最终用户中间总有着一些起争议的话题。一个互联网企业要提供好的服务,并且它能够迅速而高效地完成工作,这就是Golang与Python的问题出现的原因。每个IT企业的每一个方面都依赖于其技术备份、数据安全、入侵检测、VPN和存储等技术,这只是企业开发人员需要处理的几个问题中的一部分。鉴于这种情况,大多数企业更倾向于外包自己的IT服务,以便专注于自己最擅长的事情。更多go语言内容请关注:http://www.fastgolang.co...阅读全文

博文 2019-07-11 19:32:40 CC_ab48