在Ubuntu 16.04.3 LTS上玩转quic-go项目
说明
quic-go是使用Go来重写chromium中的QUIC协议,将来计划过渡到IETF版本的QUIC协议。
目前该协议还处于不断更新和活跃之中,目前IETF版本的QUIC协议草案版本号已经到draft 9
下面是我对REAME的实操记录,以作备忘。
项目主页
https://github.com/lucas-clemente/quic-go
特别要求
必须能流畅翻墙去下载go相关源码包
GO环境搭建
目前Ubuntu 16.04.3 LTS使用官方源安装的版本是1.6.2, 并不符合quic-go项目的版本1.9+的要求。
为此,需要从源码安装Go 1.10,参见本博文章
http://blog.csdn.net/tao_627/article/details/79375950
设置GOPATH
这非常关键,目前我的设置如下:
vim ~/.bashrc
export GOPATH=/home/taoyx/program_develop/go_demo
source ~/.bashrc
下载并安装项目
在/home/taoyx/program_develop/go_demo目录的src下面,下载,编译和安装quic-go项目代码
go get -v -t -u github.com/lucas-clemente/quic-go
进入项目所在目录
cd github.com/lucas-clemente/quic-go
执行下面的命令测试
go test ./...
测试发现进行GQUIC测试时,有很多fail,原因待查
测试example目录下面的server
go run example/main.go -www /var/www/
同时采用从chromium或proto-quic编译出的quic-client作为客户端配对测试
cd ~/program_develop/quic_dev/chromium/src
./out/Default/quic_client --host=127.0.0.1 --port=6121 --v=1 https://quic.clemente.io
测试example目录下面的client
我悲催的发现,测试网站的QUIC版本与当前client的版本不匹配,测试无法进行
go run example/client/main.go https://clemente.io
后来我在网上找到一个可以提供QUIC服务的网站,使用上面的client去请求,可以成功获取响应
go run example/client/main.go 'https://liudanking.com'
下面是在Chrome浏览器(版本号64)中开启QUIC之后,请求上面的同一个地址,获取的QUIC交互截图
TODO:
更进一步的研究待续......
在Ubuntu 16.04.3 LTS上玩转quic-go项目相关推荐
- 在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic
说明 proto-quic项目是民间从chromium中抽取出的QUIC实现相关的代码.采用这个项目的代码,比从chromium源码编译,要更快速和简单.因为毕竟GFW限制,不是所有的人都可以翻墙去下 ...
- 在Ubuntu 16.04.4 LTS上调研开源QUIC项目ngtcp2
最近在研究QUIC协议,尝试了一些QUIC相关的开源项目,主要是c,c++,go等语言编写的.这里记录下我折腾ngtcp2的过程. 基本思路就是参照github上该项目的README来进行就可以了.由 ...
- 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录
缘由 我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命 ...
- 在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' 出错问题的解决方法
在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' returned non-zero exit status ...
- 在Ubuntu 16.04.6 LTS上升级Go到最新版1.12.5实录
上一次我在Ubuntu 16.04.3 LTS上从源码安装了Go,当时最新的版本是1.10,参见我之前的博文 https://blog.csdn.net/tao_627/article/details ...
- 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操
在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...
- 在Ubuntu 16.04.5 LTS上升级python的pip版本实录
在ubuntu 16.04.5 LTS上使用Python安装模块时,比较顺手的方法是使用pip命令.这次,我在安装一个模块时,老是提示下面的问题,比较不爽.所以,我就照着提示做了一遍,记录下来,以作备 ...
- 在Ubuntu 16.04.3 LTS上运行go+https+json示例
下面是我依据网上资料的实操过程,记录以作备忘.该示例给出了https通信并处理json文件的例子. 平台:Ubuntu 16.04.3 LTS go版本:1.10 1.生成自签名的服务器端的私钥KEY ...
- 在Ubuntu 16.04.3 LTS上搭建QUIC交互demo
目的 本文依据参考文献中的资料,来利用chromium源码编译出quic_server和quic_client, 并依靠它们来发送QUIC协议请求,了解QUIC交互的细节. 前提 必须能够流畅地翻墙下 ...
最新文章
- MongoDb 安全配置
- Deep Residual Learning for Image Recognition 笔记
- c语言交换a b(运算符),关于编程语言:是否有一个复合赋值运算符用于a = b
- php图片上传在哪个文件夹,php删除上传的图片及文件夹
- CodeForces 359D (数论+二分+ST算法)
- 查表法实现反正切_关于python实现CRC32的应用和总结
- BugkuCTF-Reverse题mobile2(gctf)
- 菜鸟python_手把手教你,菜鸟也能用Python写一个2048游戏
- C语言 semaphore
- 在ARMSYS(S3C44B0X开发板)上进行uClinux内核移植的总结
- leecode - 入门 -- 双指针总结
- 动态规划——硬币找零
- 使用docker安装Jenkins教程
- c++ GUI轻量工具包FLTK介绍 (1)
- Delphi 跨语言环境 乱码问题
- 计算机打印机能不能取消正在,打印机怎么取消正在排队打印的任务? 打印机删除打印任务的教程...
- 电脑文档出现乱码怎么恢复?文档出现了乱码怎么恢复
- 广州海客智能机器人:为什么要让孩子从小学习机器人课程
- template用法
- Linux之scp与sftp的使用
热门文章
- merge into使用方法
- Nexus3.x安装
- 每个程序员都需要学习 JavaScript 的7个理由
- 为什么不记录慢速查询?
- 求二进制中1的个数(编程之美2.1)
- HDU-1698-Just a Hook
- 微信无法连接服务器501,微信成语猜猜看第501关BUG出现全是英文怎么过解决方法...
- linux系统安装deamonsync,DAEMON Sync的使用心得体会。简易版家庭云服务器!正是我要的那种...
- html打印在一页面布局,html – CSS打印布局 – 单页打印
- 用法 stl_51Nod 2160 数字游戏 STL基本用法