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

安装Go SDK

前提条件 在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问访问密钥(AccessKey)。详情参考创建AccessKey。 安装方式 您可以通过以下两种方式安装Go SDK。 使用依赖包工具安装(推荐) 自行下载安装 使用Glide安装GO SDK(推荐) 执行以下命令,安装阿里云Go SDK: glide get github.com/aliyun/alibaba-cloud-sdk-go 在安装完成后,您可以使用OpenAPI Explorer来生成相关API的Demo并应用在您的项目中。 使用Govendor安装 执行以下命令,安装阿里云Go SDK: go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk 在安装完成后,...阅读全文

博文 2019-05-19 16:50:08 8588ll

Go语言实战流媒体视频网站

Go语言实战流媒体视频网站网盘地址:https://pan.baidu.com/s/1ZlBQy0uYVQjVmnnlTcNgCQ 密码: qkx4备用地址(腾讯微云):https://share.weiyun.com/5uWBjZn 密码:pcsqt3 本课程带着同学们使用Go语言实战一个流媒体视频网站。 从后端Server到前端UI,全面掌握Go语言的开发关键技能和Go语言编码的架构风格。同时通过讲述SOA服务化解耦的设计理念,帮助同学们理解真实web服务背后的内容。最后通过架构调整实现Cloud native(云原生)部署。 完整开发流程从环境配置、安装到前后端Server实现以及最后部署上云 超值延伸讲解Go语言的并发理念与应用,在Web前端模版引擎的使用方法。在Cloud nati...阅读全文

博文 2018-08-08 11:35:19 qq5b67b6c726e17

Go后台管理系统Gfast 管理系统

基于GF(Go Frame)的后台管理系统 前端采用ruoyi-ui 、Vue、Element UI。 后端采用GO语言 框架 GF(Go Frame)。 本项目由奇讯科技团队开发。 内置功能 - 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 - 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 - 岗位管理:配置系统用户所属担任职务。 - 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 - 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 - 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 - 参数管理:对系统动态配置常用参数。 - 操作日志:系统正常操作日志记录和查询;系统异常信...阅读全文

Golang加密系列之AES

这里我们只讨论使用aes加密算法,pkcs7padding,CBC模式模式进行加密。 加密代码: func Encrypt(plantText, key []byte) ([]byte, error) { block, err := aes.NewCipher(key) //选择加密算法 if err != nil { return nil, err } plantText = PKCS7Padding(plantText, block.BlockSize()) blockModel := cipher.NewCBCEncrypter(block, key) ciphertext := make([]byte, len(plantText)) blockModel.CryptBlocks(c...阅读全文

博文 2015-09-02 11:00:01 君子藏锋

Go 的微信支付商户平台 SDK wxpay

wxpay 是一个使用Go语言编写的微信支付商户平台SDK。 ## 举个栗子 以查询企业付款API为栗:

package main

import (
    "log"

    "github.com/go-with/wxpay"
)

const (
    appId  = "" // 微信公众平台应用ID
    mchId  = "" // 微信支付商户平台商户号
    apiKey = "" // 微信支付商户平台API密钥

    // 微信支付商户平台证书路径
    c...阅读全文

云导播台的设计和实现--基于golang的livego rtmp服务器

一、什么是云导播台 提供对多直播流rtmp或http-flv在直播过程中,实时进行流切换。举例,有多个直播rtmp源的时候,对源动态、实时进行选择,将其中一路直播出来,显示给观众。 二、什么是livego livego是基于golang开发的rtmp服务器。这里一个简单的云导播台就在livego的框架上进行开发。 三、实现的云导播台功能列表 rtmp流服务器主动拉取多路直播流; 拉取多路直播流指: rtmp流,http-flv流; 通过http选举,对拉取到的多份流进行动态选择,选择到的流再推送到上游; 四、云导播基本框...阅读全文

博文 2017-09-23 14:33:38 CSDN博客

[更新] 深圳羚羊极速科技有限公司招聘golang开发工程师

golang语言开发工程师 岗位职责: 1. 负责分布式系统设计与实现 2. 负责云存储系统的维护和优化 任职要求: 1. 3年以上 Linux 操作系统下的 GO项目的开发经验; 2. 有分布式存储开发、设计、架构经验,深刻理解分布式存储原理,有海量非结构化数据存储设计经验的优先考虑; 3. 精通linux IO系统、网络系统,精通高性能系统者优先; 4. 有RabbitMQ开发经验者优先; 5. 熟悉MongoDB、LevelDB数据库; 6. 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力; 7. 有良好的团队合作能力,富有工作激情,善于沟通,热爱开发事业。 上班地点:深圳市...阅读全文

golang中的hmac验证应该怎样写

python是这样的 一般hmac验证需要两个参数,一个密钥和一个加密串(既接口参数值的拼接) import hmac hmacStr=hmac.new('密钥') hmacStr.update('加密串') hmacStr=hmacStr.hexdigest() 或者是 hmac.new(__api_secret, params, digestmod=hashlib.sha512).hexdigest() 在golang中应该怎样写?我到处都找不到例子和相关的用...阅读全文

golang 生成RSA公钥和私钥文件

package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "os" ) func main() { //rsa 密钥文件产生 GenRsaKey(1024) } //RSA公钥私钥产生 func GenRsaKey(bits int) error { // 生成私钥文件 privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) block := &pem.Block{ Type: "R...阅读全文

博文 2016-04-29 20:00:01 su_sai

golang RSA加密解密程序

package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "errors" "fmt" ) // 加密 func RsaEncrypt(origData []byte) ([]byte, error) { block, _ := pem.Decode(publicKey) //将密钥解析成公钥实例 if block == nil { return nil, errors.New("public key error") } pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes) //解析pem.Decode()返回的Block指针实例 i...阅读全文

博文 2016-04-20 21:00:01 su_sai

Go socket编程实践: UDP服务器和客户端实现

在上一篇文章Go socket编程实践: TCP服务器和客户端实现, 我们实现了一个ECHO服务器, 并且也实现了一个客户端来访问服务器。这篇文章讲解如何实现一个UDP服务器和客户端。这次我们使用的协议是 RFC 868,此协议提供了一个独立于站点的,机器可读的日期和时间信息。时间服务返回的提供了一个32位的数字,是从1900年1月1日午夜到现在的秒数。RFC 868定义时间协议使用端口37, TCP和UDP协议都可以。 另外还有两个关于时间/日期的RFC协议。NTP (RFC 1305)是网络时间协议,提供了精确的时间同步。daytime (RFC 867)在TCP端口13侦听,返回ACSII格式的日期和时间。 TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP...阅读全文

博文 2017-02-08 12:53:27 smallnest

【数据实时分析】流计算使用教程

课程介绍 阿里云流计算(Alibaba Cloud StreamCompute)是运行在阿里云平台上的流式大数据分析平台,提供给用户在云上进行流式数据实时化分析工具。 产品详情:https://data.aliyun.com/product/sc 课时列表 • 课时1:流计算概念 • 课时2:阿里云流计算产品介绍 • 课时3:阿里云流计算应用场景 • 课时4:阿里云流计算新手任务一 • 课时5:阿里云流计算新手任务二 开始学习http://click.aliyun.com/m/27853/ ...阅读全文

golang 错误处理与异常

[原文地址](http://litang.me/post/golang-error-and-panic/) golang 中的错误处理的哲学和 C 语言一样,函数通过返回错误类型(error)或者 bool 类型(不需要区分多种错误状态时)表明函数的执行结果,调用检查返回的错误类型值是否是 nil 来判断调用结果。 ### error golang 中内置的错误类型 error 是一个接口类型,自定义的错误类型也必须实现为 error 接口,这样调用总是可以通过 Error() 获取到具体的错误信息而不用关心错误的具体类型。标准库的 `fmt.Errorf` 和 `errors.New` 可以方便的创建 error 类型的变量。 ```go type error interface { Er...阅读全文

博文 2018-11-05 19:01:31 darlingtangli

golang rsa公钥私钥pem文件生成

func main() { //rsa 密钥文件产生 GenRsaKey(1024) } //RSA公钥私钥产生 func GenRsaKey(bits int) error { // 生成私钥文件 privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) block := &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: derStream, } file, err := os.Create("private.pem") if err != ...阅读全文

博文 2015-06-17 20:23:37 zb_liang

p12转PEM供golang APNS使用

package main import ( "crypto/tls" "fmt" ) func main() { //LoadX509KeyPair读取并分析一个公用/私有密钥对从一对文件。该文件必须包含PEM编码数据。 _, err := tls.LoadX509KeyPair("./cert_dist.pem", "./key_dist2.pem") fmt.Println(err) //X509KeyPair解析一个公共/私有密钥对从一对PEM编码数据。 // _, err = tls.X509KeyPair(privateKey, publicKey) // fmt.Println(err) } //一、通过P12生成临时文件cert.pem // openssl pkcs12 -c...阅读全文

博文 2015-03-19 11:00:01 liaojie

开源的 RTSP 流访问工具Cameradar

Cameradar 是一个开源的访问 RTSP 流媒体的工具,可监控使用实时流传输协议(RTSP)的摄像机。 功能: 检测任何可访问的目标主机上开启的 RTSP 主机 检测正在进行流传输的设备 启动自动的字典攻击以获取 stream route 信息(如 `/live.sdp`) 启动自动的字典攻击以获取摄像机的用户名和密码 获取完整和用户友好的报告 ![image](https://static.oschina.net/uploads/space/2017/1012/200827_kpFD_2720166.gif...阅读全文

开源项目 2017-10-12 13:00:03 网友

使用Gin+WebSocket在HTML中无插件播放RTSP

项目地址:gin-rtsp 在后台的开发中遇到了对接显示摄像头视频流的需求。目前获取海康及大华等主流的摄像头的视频流使用的基本都是RTSP协议。不过HTML页面并不能直接播放RTSP协议的视频流,查询了一番各种网页播放RTSP的资料,有如下的一些方案: 插件开发播放:使用ActiveX等浏览器插件的方式来播放,海康和大华的浏览器管理页面便是通过安装浏览器插件来播放视频的。视频播放稳定,延时短,但是对技术要求较高,对于chrome等现代浏览器也存在兼容性问题,并不想考虑。 RTSP 转 HLS:使用FFMPEG将RTSP转为HLS,推流到流服务器,如安装了nginx-rtmp-module模块的nginx,用这个方案测试了下,HLS协议在PC端和移动端的浏览器的播放都很稳,但是用HLS协议的直...阅读全文

博文 2019-12-19 15:34:18 昊羲

golang 读取切分存储byte流文件

package main import ( "fmt" "os" "time" ) func check(e error) { if e != nil { panic(e) } } func cat(f *os.File) []byte { var payload []byte for { buf := make([]byte, 1024) switch nr, err := f.Read(buf[:]); true { case nr < 0: fmt.Fprintf(os.Stderr, "cat: error reading: %s\n", err.Error()) os.Exit(1) case nr == 0: // EOF return payload case nr > 0: ...阅读全文

博文 2017-02-09 08:27:20 载昊君

+jiayouya01可以交换51cto有想学习的吗

图片发自简书App 51cto学院微职位 Golang开发工程师51cto学院微职位人工智能工程师标准化课程51CTO学院大数据微职位 (基础+提升班级)全套 51CT0大数据全套教程从官方例程深度学习海思SDK及API-第211季视频课程海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第511季视频课程全面认识海思SDK及嵌入式层开发-第111季视频课程图像sensor的特性和驱动解析视频教程-第411季ORTP库局域网图传和VLC实时预览-第311季视频课程老段带你学Perl视频课程零基础:21天搞定Python分布爬虫全全面认识海思SDK及嵌入式层开发-第111季视频课程深度解剖dubbo源码数据结构实战完全手册视频课程c++从入门到精通 c++111417c++对象模型...阅读全文

SRS流媒体服务器源码分析(一)

线程模型 srs使用了state-threads协程库,是单线程多协程模型。 这个协程的概念类似于lua的协程,都是单线程中可以创建多个协程。而golang中的goroutine协程是多线程并发的,goroutine有可能运行在同一个线程也可能在不同线程,这样就有了线程安全问题,所以需要chan通信或者mutex加锁共享资源。 而srs因为是单线程多协程所以不用考虑线程安全,数据不用加锁。 主流程分析 撇掉程序启动的一些初始化和设置,直接进入: int SrsServer::listen() { int ret = ERROR_SUCCESS; if ((ret = listen_rtmp()) != ERROR_SUCCESS) { return ret; } if ((ret = lis...阅读全文

博文 2018-09-18 13:34:42 云上听风

Go语言实现HMACSHA1加密

首先来说说SHA1加密 SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所NIST发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 --摘自维基百科 HMACSHA1是从 SHA1 哈希函数构造的一种键控哈希算法, 此 HMAC 进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数。 输出的哈希值长度与SHA-1一致 总的来说,两者具体区别好像就是HMACSHA1加密需要密钥,而SHA1不需要。如果有大佬知道其它的区别,麻烦一定要留言告知。...阅读全文

博文 2019-07-10 17:32:44 香蕉你个不呐呐丶

视频监控业务上云方案解析

摘要: 阿里云针对安防监控服务在传统IT架构下面临的上述问题,基于阿里云存储服务,提供视频监控解决方案。从2015年推出视频监控存储与播放解决方案以来,帮助大量的视频监控企业解决了上云的过程中遇到的问题,针对不同的视频监控厂商,也推出了不同的解决方案 **行业痛点** 由于视频监控能最大的记录和还原当被监控的场景,近年来,视频监控逐步从专业领域的应用普及到了各个民用、家用领域,各个摄像相机厂家也纷纷推出各种型号的摄像机和解决方案。由于视频监控数据量大,也会遇到各种问题: 存储资源消耗大且增长迅速。视频监控业务极度消耗存储资源,一个成规模的互联网视频监控服务往往需要PB级甚至更多存储资源,普通IDC或小云服务提供商有限的基础设施很容易成为云视频监控业务爆发增长的瓶颈,一旦出现存储...阅读全文

golang 导出 csv文件

csv文件可以直接用Excel打开 csv方式导出,可以像导出txt一样,以文本流的方式进行流式处理,不但能导出海量信息,而且流式处理占用内存极低,服务器对浏览器的响应也是非常迅速的。 导出纯数字构成的字符串,在excel中打开csv时,容易被识别成数字,造成误解。一般加上"\t",也有人采用加" ' "单引号 等解决方式。 实现代码 package main import ( "encoding/csv" "fmt" "os" "sort" "time" ) func main() { // 不存在则创建;存在则清空;读写模式; file, err := os.Create("person_list.csv") if err != nil { fmt.Println("open file ...阅读全文

博文 2019-11-01 17:34:01 aside section._1OhGeD

go学习笔记-控制流

控制语句 条件语句 条件语句不需要使用括号将条件包含起来(); 无论语句体内有几条语句,花括号{}都是必须存在的; 左花括号{必须与if或者else处于同一行; 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔; 在有返回值的函数中,不允许将“最终的”return语句包含在if…else…结构中,否则会编译失败: func example(x int) int{ var result int if x == 0 { result = 5 } else { result = x } return result } 选择语句 switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough c...阅读全文

博文 2014-10-04 19:26:15 Bluven

逃离北上广是伪命题?

2006年毕业的80后, 北京打拼8年,广州创业三年 (流媒体,CDN, APP 服务端,C/C++,Python,Go,Shell),从coder 到 CTO, 一路走来。 长期和孩子妻子分离,在网上看多了逃离北上广的理由, 稀里糊涂来昆明了。 发现工作真不多,大部分JAVA相关, 好不如意求得一份C++ 的工作,从零开始 小小程序员。 现在想想 ,对于在北上广混久的人来说, “逃离北上广” 已经成为一种不可能。 想逃的赶紧逃, 不要等到逃不动了。 再次记录下心情。另外求一份可以异地办公的occupation...阅读全文

Go 边看边练 -《Go 学习笔记》系列(十四)(已完结)

相信大家在看编程语言学习教程的时候都会难免觉得有点枯燥: * 自己看书,遇到问题不方便求助 * 书上的代码片段、示例是静态的 * 虽然有时书上会给出运行输出,但是不够直观 * 自己拷贝代码到 IDE 里运行是也比较麻烦 * 即使运行了也要来回在 IDE 和书之间切换,还是麻烦 * 总之,[程序员都是懒人](https://www.baidu.com/s?wd=%E7%A8%8B%E5%BA%8F%E5%91%98%20%E6%87%92%E4%BA%BA&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=14&rsv_sug1=5&rsv_sug2=0&i...阅读全文

HTTPS 流量监控 Hyperfox

Hyperfox 是一个安全的工具用来代理和记录局域网中的 HTTP 和 HTTPS 通讯。 ![Hyperfox diagram](http://static.oschina.net/uploads/img/201501/03082941_hJBA.png) Hyperfox 可以即时使用一个根 CA 证书和相应密钥(用户提供)来处理 SSL 证书。如果目标机器的认为该证书可信任则将可成功的解析 HTTPS 通讯记录。 ![Intercepting SSL](http://static.oschina.net/uploads/img/201501/03082942_B22c.png) Hyperfox 将捕获到的数据保存到 SQLite 数据库中用于后期的查询,并提供 Web 监控...阅读全文

开源项目 2015-01-02 16:00:00 xiam

学习Golang语言(2): 变量

# 学习Golang语言(2): 变量 跟着“码术”一起学习Golang语言。学习一门新的语言,我们首先了解的是新语言的变量声明,基本类型,关键字以及控制流。本章主要讲解变量声明。 学习一门新的语言,我们首先了解的是新语言的变量声明,基本类型,关键字以及控制流。 Go语言在语法上类似于C语言。但是不同于C语言,Go虽然也是用分号进行语句分割,但是程序员不需要在每行程序结尾添加分号。Go语言的编译器会自动在每行末尾添加分号。 但是,如果你需要将两行(或者更多行)语句放在同一行内,那么需要使用分号(;)进行分隔。 **变量声明** Go语言不同于其他语言的地方在于:变量的类型在变量名之后。例如: C中: int a;而在Go中:var a i...阅读全文

Golang、unity3d设置聊天游戏服务器的思路。

今天打开我原来的编写的unity3d游戏代码,一看发现还有个聊天的功能没有加上去。 我的想法是这样。 聊天具体流程是这样,先登录帐号,获取token,验证帐号可以POST或者直接TCP验证,一般来说直接POST提交,返回token,token的算法网站服务器在设置。 帐号验证成功后先连接GO语言编写的聊天服务器,服务器返回随机加密密钥,服务器同时保存密钥,甚至可以隔断时间生产新的密钥,客户端根据密钥解密后同时把密钥保存本地,再次加密提交握手协议,验证成功后,提交根据保存在本地密钥进行加密token,userid,userName, timestamp、IP(可在服务器获取)等等。 提交聊天的信息,根据本地的密钥进行加密。 客户端发言的时候,服务器设置敏感词TXT文本,一旦发现有敏感词,在服务...阅读全文

博文 2017-03-21 06:00:43 大洋的顶端

【时速云线上分享】第十一期:Radio Dream流媒体直播平台基于Docker的应用

以下整理自第十一期技术分享内容,由 时速云 史鑫磊 分享。 首先介绍一下背景,Radio Dream项目是一个开源项目,前身为五雷轰顶网络电台,这个项目是我个人逐渐打磨了将近两年,最开始是因为猫扑网络电台停播,我个人是猫扑电台的老听众,很舍不得这个平台,后来想想,干脆自己做一个网络电台,就是因为这些想法催生了这个项目的成立。 说完背景开始聊聊这个电台的架构,我们从流媒体协议选型到架构实现等多个方面拆分的讲解这个平台实现方法,另外时速云镜像仓库里Radio Dream的镜像demo,总体来说这套系统部署起来还是十分复杂,虽然对系统要求极其低,单核心CPU,128M内存,20GB左右的硬盘就能跑起来,但是从最开始的架构设计我就打算做成一个集群化的方案,方便动态扩容,服务更多用户,...阅读全文

学习Golang语言(2): 变量

跟着“码术”一起学习Golang语言。学习一门新的语言,我们首先了解的是新语言的变量声明,基本类型,关键字以及控制流。本章主要讲解变量声明. 学习Golang语言(1): Hello World 学习Golang语言(2): 变量 学习Golang语言(3):类型--布尔型和数值类型 学习Golang语言(4):类型--字符串 学习Golang语言(5):类型--数组 学习一门新的语言,我们首先了解的是新语言的变量声明,基本类型,关键字以及控制流。 Go语言在语法上类似于C语言。但是不同于C语言,Go虽然也是用分号进行语句分割,但是程序员不需要在每行程序结尾添加分号。Go语言的编译器会自动在每行末尾添加分号。 但是,如果你需要将两行(或者更多行)语句放在同一行内,那么需要使用分号(;)进行分...阅读全文

博文 2014-10-09 16:00:04 codemanship

go golang资料大全

#####go基础到实战,聊天系统,日志管理系统,秒杀系统,分布式。 ![微信图片_20181016102120.png](https://static.studygolang.com/181016/cebb68e695ae7c615edf78dacec2ab29.png) #####Google 资深工程师深度讲解go, 流量统计系统,实战流媒体系统 ![微信图片_20181016170811.png](https://static.studygolang.com/181016/a3b32019b6563faf00fc808eedddf864.png) 这些都是本人学go 看过,资料齐全,如有需要,关注公众号(程序员的视界)免费领取,或wx:1732607089...阅读全文

博文 2018-10-16 17:11:00 vaderboy

golang中使用JWT验证

1.生成token并传给客户端:token :=jwt.NewWithClaims(jwt.SigningMethodHS256,jwt.MapClaims{"id":c.ID,"username":c.Username,"exp":time.Now().Unix() +60*10,"nbf":time.Now().Unix(),"iat":time.Now().Unix(),})tokenString,err =token.SignedString([]byte(secret))2.客户端验证:func Parse(tokenString string,secret string) (*Context,error) {ctx := &Context{}token,err :=jwt.Par...阅读全文

博文 2019-10-28 11:32:46 aside section._1OhGeD

高可扩分布式 CDN 解决方案Traffic Control

Apache Traffic Control 是一个分布式、可扩展的冗余解决方案,可用于构建、监视和配置大型内容交付网络(CDN)。项目起源于 [Traffic Server](https://www.oschina.net/p/trafficserver) ,实现了现代 CDN 的所有核心功能。 借助 Traffic Control,运营商可以设置一个内容分发网络,为用户快速高效地提供高质量的 Live 和 VOD 流媒体视频。 降低延迟:找到更靠近用户的缓存和内容可减少传送内容所需的往返时间。 降低带宽成本:在内存和磁盘上缓存内容可减少原始服务器和瓶颈链接上的负载...阅读全文

RSA生成密钥

**RSA生成密钥** ````golang package crypto import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "os" ) func GenRsaKey(bits int) error { privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) block := &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: derStream, } file,...阅读全文

博文 2018-01-17 14:46:06 hfyarvin

深入Go UDP编程

用户数据报协议(User Datagram Protocol,缩写为UDP),又称用户数据报文协议,是一个简单的面向数据报(package-oriented)的传输层协议,正式规范为 RFC 768。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验。 由于缺乏可靠性且属于非连接导向协议,UDP应用一般必须允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体(流技术)、即时多媒体游戏和IP电话(VoIP)一定就是典型的UDP应用...阅读全文

博文 2016-10-20 16:00:01 jimoforever

Defer, Panic, and Recover[翻译]

文: http://golang.org/doc/articles/defer_panic_recover.html (被墙) 中文: http://zh-golang.appsp0t.com/doc/articles/defer_panic_recover.html Go语言提供一般的流程控制语句: if, for, switch, goto. 同时它还提供go语句来执行一个 goroutine. 这里我们将介绍几个不太常见的语句: defer, panic, 和 recover. 一个 defer 调用的函数将被暂时保存到调用列表中. 保存的调用列表在当前环境返回的时候被执行. Defer 一般可以用于简化代码, 执行各种清理操作. 让我们演示一个文件复制的例子: 函数需要打开两个文件,...阅读全文

博文 2015-05-03 22:20:00 chai2010

学习记录:go语言中读写文件的小练习

package main import ( "os" "fmt" "bufio" "strings" "strconv" ) func main() { f, _:=os.OpenFile("a.txt", os.O_RDONLY, 0666) defer f.Close() m:=bufio.NewReader(f) char:=0 words:=0 lines:=0 for{ s, ok:=m.ReadString('\n') fmt.Println(s) char+=len(s) words+=len(strings.Fields(s)) lines++ if ok!=nil{ break } } fmt.Println("char:"+toString(char)+",words:"...阅读全文

博文 2014-10-04 19:26:30 明述道长

2018用go语言实战开发流媒体视频网站 架构解析 cloud native应用云实战

第1章 课程介绍介绍这门课程大纲,技术堆栈以及环境1-1 prestudy1-2 课程介绍及知识要点预习第2章 一个例子了解golang工具链通过一个简单的webservice具体从golang的工具链,到test,全面介绍golang在工程项目里需要掌握的知识点。2-1 一个例子了解golang常用工具链2-2 golang项目中test的写法2-3 golang项目中benchmark的写法2-4 章节总结第3章 流媒体网站架构以及API模块的实现本章通过实战演练,从网站的整体架构设计,到服务划分,数据库设计,到api模块的实现,全面讲述golang对webservice的实现以及代码分层架构的思想,同时辅以test cases的全程编写与指导,全面了解工程化golang项目的实现。3-...阅读全文

博文 2018-08-09 12:34:46 拥抱大数据

【TokenGazer评级】RChain:现金流问题暴露管理隐患,治理风险得到适当释放

TokenGazer观点:RChain当前市值估值区间在总市值200B前提下有95%的几率在22.5MM到79.2MM之间,TokenGazer项目指标为2分(满分5分,说明见文末),指标展望:上升趋势。RChain用Scala语言搭建核心平台,并在并发上有独特考虑,其DAG+Casper+RhoVM的技术架构随着项目进展将收到越来越多的关注。在现金流管理上暴露出严重的管理漏洞,董事长Greg Meredith未能对市场作出充足打算,董事会则未能对Greg的弱点起到足够的补充和制衡。目前主网上线前的资金缺口以及Mercury后续开发版本的资金筹措计划仍旧需要密切关注。Token供应缺乏规划的情况已经得到大幅度改善。1 估值、评分、变化预测1.1基本信息名称:RChain创立于:2017年3月...阅读全文

博文 2018-11-20 14:34:49 TokenGazer

Redis 热部署工具 Rump

## Rump Redis 热部署工具。 Rump 能够通过仅使用 SCAN,DUMP 和 RESTORE 将密钥从 ElastiCache 集群或任何 Redis 服务器传输到另一个 Redis 服务器。 ### 特性 * 使用 SCAN 代替 KEYS,以避免 DoS 您自己的服务器 * 可以同步任何键类型 * 有意删除TTL,因其不会同步 * 不使用任何临时文件 * 使用缓冲通道优化慢速源服务器 * 使用管道以最小化网络往返 ### 示例

# Sy...阅读全文

Golang 流式解析 Json

json-iterator 库:https://github.com/json-iterator/go 动机 现有的golang解析json的库都是push模式的,缺少一种基于pull api的库。另外就是看一下golang解析json的速度到底如何,还有多少的提高空间。 API 风格 api 风格上是以 StAX 为基础,但是针对 JSON 做了特别的优化。比 StAX 和 SAX 都更简单可控。当然如果需要最简单,还是 DOM 类的 api 最简单。使用流式pull的api为的就是最大化控制解析过程。 解析 Array iter := ParseString(`[1,2,3]`) for iter.ReadArray() { iter.ReadUint64() } 可以看到,pull a...阅读全文

博文 2017-02-10 10:31:36 taowen

golang协程为什么比线程轻量?

先理解下进程、线程跟协程的概念: 进程    计算机的操作系统模式是一种多任务系统,操作系统接管了所有的硬件资源,并且本身运行在一个受硬件保护的级别。所有的应用程序都以进程(process)的方式运行在比操作系统权限更低的级别,每个进程都有自己独立的地址空间,使得进程之间的地址空间相互隔离。CPU由操作系统统一进行分配,每个进程根据进程的优先级的高低都有机会得到CPU,但是如果允许时间超出了一定的时间,操作系统会暂停该进程,将CPU资源分配给其他等待的进程。这种CPU的分配方式即所谓的抢占式,操作系统可以强制剥夺CPU资源并且分配给它认为目前最需要的进程。如果操作系统分配给每个进程的时间都很短,即CPU在多个进程间快速地切换,从而造成了很多进程都在同时运行的假象。 线程   线程有时被称为轻...阅读全文

博文 2019-07-07 17:32:41 one_zheng

如何指定https在传输数据过程中的加密算法?

最近在学习https,对大概有了个了解,基本都是说先采用RSA进行握手,三次握手后协商出一个对成密钥来进行对成加密,但问题是这个对成加密的算法是什么?我们怎么指定呢,比如指定用AES等等。是在openssl生成证书时配置还是自己在代码里实现阿...阅读全文

【币码翁•技术】 最新 HTTP/2 漏洞曝光,我们该如何保护个人信息安全? ​

在这个数据、应用横行的时代,漏洞的出现早已屡见不鲜。在尚未造成大面积危害之前,我们该如何做好防御措施?或许从过往经常发生漏洞的事件中我们能够得到一些启发。近日,Netflix、Google 及 CERT/CC 披露了 HTTP/2 相关的 8 个安全漏洞,就连用来打造 Kubernetes 的 Go 语言也受到其中两个漏洞的波及,导致 Kubernetes 所有版本都受到相关漏洞影响,可能造成服务阻断。不过好在现在漏洞已修复,而我们在这个过程中又可以学习到什么? 几周前,Netflix公开了许多第三方HTTP/2实现中都存在的资源耗尽漏洞——由Jonathan Looney发现。该漏洞会直接影响Kubernetes中的HTTP/2端点(由net/http、x/net/http2等GoLang...阅读全文

博文 2019-09-30 16:33:49 aside section ._1OhGeD

命令行工具skm

![](https://raw.githubusercontent.com/TimothyYe/skm/master/snapshots/skm.png) SKM - 基于Go的SSH key命令行管理器,帮助你方便的管理所有的SSH key ## 功能特性 * 创建,显示与删除SSH密钥对 * 通过别名方便的管理SSH密钥对 * 支持通过use命令,指定默认使用的SSH密钥对 * 方便的备份与恢复所有的SSH密钥对 ## 项目地址 https://github.com/TimothyYe/skm ## 安装方式 ### Homebrew安装 ```bash brew tap timothyye/tap brew install timo...阅读全文

开源项目 2017-10-17 08:10:00