基于linux的MsQUIC编译及样例运行

参考链接:

https://github.com/microsoft/msquic/blob/main/docs/BUILD.md

软件相关版本

Ubuntu 20.04

编译/构建

1. 下载源代码

$ git clone --recursive https://github.com/microsoft/msquic.git

2. Powershell安装:

安装链接(根据自己的ubuntu版本选择):

https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7.1 

# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb# Update the list of products
sudo apt-get update# Enable the "universe" repositories
sudo add-apt-repository universe# Install PowerShell
sudo apt-get install -y powershell# Start PowerShell
pwsh

3. 安装 .NET Core:

安装链接:https://docs.microsoft.com/en-us/dotnet/core/install/

4. 安装对应依赖/检查是否已经完全安装对应依赖。

进入msquic目录,输入下面的命令。下面命令需要进入powershell,安装完后输入 pwsh进入。

$ ./scripts/prepare-machine.ps1 -Configuration Dev

4. 开始构建。构建时间比较久,需要等一下。构建完之后就编译完了。

$ ./scripts/build.ps1

测试用例运行

$ ./scripts/test.ps1

用例运行如下所示。不过的案例可以在对应的文件夹看log。我这里运行的时候有4个案例不过,但是没有关系,在后面运行sample的时候还是可以的。

 运行样例

MsQUIC提供了一个简单的client和server的案例,目录位置: /home/user/test/msquic/src/tools/sample。

首先生成证书密钥,输入以下命令:

 $ openssl req  -nodes -new -x509  -keyout server.key -out server.cert

得到以下界面,下面会有一些让输个人信息的地方,全按回车就行。

 运行服务器端

进入\msquic/artifacts/bin/linux/x64_Debug_openssl目录,在Powershell中执行以下命令。server.cert和server.key的地址需要根据自己的情况修改。

$ ./quicsample -server -cert_file:path/to/server.cert -key_file path/to/server.key

如: 

$ ./quicsample -server -cert_file:/home/user/test/msquic/server.cert -key_file:/home/user/test/msquic/server.key 

运行客户端

在PowerShell中运行以下命令。-target参数指定了服务端地址及端口,其中端口号4567是源码中固定写好的。-unsecure 参数表示,不进行证书验证。

$ ./quicsample -client -target:127.0.0.1 4567 -unsecure

运行截屏

server端

client端

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MD文件图片base64自动编码

看工具链接请直接将文章拉到最后… 概述 不知道你在使用markdown写文章的时候有没有遇到过这样的烦恼, 文件写完了, 想将写完的文章粘贴到博客的时候, 你满心欢喜的复制粘贴, 但是发现图片根本复制不过去, 是不是很难受, 尤其对于我这种使用markdown写文章, 写完后想把文章发…

转载:tcpdump抓包和Wireshark解包

转自:https://www.cnblogs.com/domestique/p/8028405.html 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头…

散列表(哈希表)

概述 什么是散列表? 如果说起它的另一个名字, 你一定很熟悉, 它的英文叫"Hash Table", 哈希表, 很熟悉吧. 散列的思想, 其实就是利用数组的随机访问特性, 将key-value形式的数据, 其中的key转换成数组下标, 即可实现将其存放到数组中, 进而实现随机访问. 而其中将…

如何让nRF52840 dongle化身为BLE sniffier (过程详细记录)

参考链接: How to install BLE Sniffer on nRF52840 Dongle and run it – Jimmys thing 软件环境: Windows 10Python v3.6 or later: 安装地址:Python Releases for Windows | Python.orgWireshark v2.4.6 or later: 安装地址:Wireshark DownloadnRF Connect: 安装地址: n…

哈希算法的用途

什么是哈希算法 一说到哈希算法, 我瞬间就想到了哈希函数、哈希表, 其实他们并不是一回事. 简单来说, 哈希算法就是将任意长度的字符串通过计算转换为固定长度的字符串, 不对, 不光字符串, 应该说是将任意长度的二进制串转换为固定长度的二进制串, 这个转换的过程就是哈希算法…

解决/mnt中有hgfs无共享文件

问题: 已经设置了共享目录,进入 /mnt/hgfs 文件夹,但发现提示没有共享的文件夹 使用以下办法解决(root权限): 解决: 1. 切换到root权限 sudo passwd root 2. 查看当前有哪些共享的目录 vmware-hgfsclient 3.进行挂…

贪婪算法回顾

回顾 还记的贪婪算法么? 如果你不记得了, 看了下面这个例子你一定会想起来, 因为这个例子太普遍了, 几乎每个将贪婪算法的地方, 第一个例子都是它, 言归正传. 问题: 现在有如下课程表, 要将这些课尽可能多的安排在教室A内. 课程名开始时间结束时间语文课9:0010:00数学课9:3…

【安全】基础概念梳理-基本加密方式、数字签名、证书

一、两种基本加密方式 1.1 对称加密 对称加密是指双方持有相同的密钥进行通信,加密速度快。常见的对称加密算法有DES、3DES、AES等。存在问题:通信双方如何获得相同的密钥? 1.2 非对称加密 非对称加密,又称为公开密钥加密&#…

PHP 自动加载

回顾 开始的时候, 如果想在一个php文件中使用其它文件的类或方法, 需要通过include/require方法将文件包含进来. 这种方法的缺点也很明显: 如果需要引入很多文件, 就需要很多的include语句, 不仅不美观, 而且也难免会又遗漏如果多个文件中定义了相同名称的常量, 会导致抛出重…

【坑】云相关

1. NAT NAT(Network Address Translation,网络地址转换:当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密&…

Pycharm 2019 添加 docker 解释器

打开docker的tls 点击设置: 搜索docker, 添加: 点击解释器选项 添加 选择docker 这里说缺少映射, 先不管 接下来, 创建一个新项目, 在选择解释器的时候, 如果选择刚刚添加的, 会报错, 先选一个能用的, 进到项目再换 在右下角的解释器小部件, 选择我们刚刚添加的 然后就可以正常…

【待补】Wireshark+BLE dongle: BLE数据包捕获以及分析

文章目录前言1. 捕获BLE数据包2. 分析BLE数据包2.1 过滤掉不感兴趣的BLE数据包2.2 利用Wireshark内嵌工具生成图表前言 硬件:Nordic 52840 dongle 软件: Wireshark 1. 捕获BLE数据包 待补充。 2. 分析BLE数据包 2.1 过滤掉不感兴趣的BLE数据包 以自…

js动态添加div

问题 有没有遇到过这样的需求, 在页面上会有不定个input, 点击添加按钮就添加 每次写这玩意好麻烦啊, 把他封装起来, 需要的时候调用就好了 思路 因为每个input标签的name如果相同的话, 在后端接收的时候会出错, 所以我的解决办法就是在name后加上一个数字, 后端用一个循环进…

【坑】Sketch算法——Count-Min Sketch和Universal Sketch

文章目录参考链接一、Sketch算法用来做什么?二、Min-count sketch基础思想:进阶:特点:三、Universal Sketch参考链接 [1] Count-Min Sketch: https://blog.csdn.net/pipisorry/article/details/64126199 [2] Cormode G, Muthukrishnan S. An improved …

css中的单位

前端开发中, 做适配是少不了的, 这就用到了css中的各种长度单位, 做一下总结 在css中, 长度单位分为以下几种 绝对单位: px、in、cm、mm、pt、pc百分比单位: vw、vh、vmin、vmax、%相对单位: em、rem、ex、ch 各单位介绍 px 不用过多介绍, 精确像素 in 寸 cm 厘米 mm…

【5G入门】MCS调制编码方案简介

​ 目录参考资料:1. MCS简介MCS是什么如何选择MCS有哪些MCS可供选择如何配置MCS示例参考资料: 链接: 5G NR Modulation and Coding Scheme – Modulation and Code Rate. 1. MCS简介 MCS是什么 MCS(Modulation and Coding Scheme&#xf…

caffe初体验

caffe是一个深度学习的框架, 具体我也不太清楚, 可以自行百度吧, 我也是刚刚知道有这么一个框架, 才疏学浅啊. 在安装完caffe, 我的第一个想法就是, 别管他是个啥东西, 总得先让我运行一些看一看吧. 刚好, 官方就准备了一些数据, 供我们运行一下看一看使用. 因为我是通过dock…

【安全】进阶的Mosquitto:搭建一个安全的MQTT服务

目录一、基础版Mosquitto安装及运行Mosquitto安装Mosquitto运行二、基础安全版Mosquitto安装及运行(需要输入密码)Mosquitto安装Mosquitto配置Mosquitto测试效果三、安全版Mosquitto安装及运行Mosquitto安装TLS安装Mosquitto配置Mosquitto测试效果注意一…

PHP注释标记整理

什么是注释标记 我们在平常写代码或看别人写的代码时, 在方法的说明注释中经常会有这样的注释: /*** param $num* return array*/上面的*param* return 就是注释标记 注释标记用于生成文档, param指明需要接收的参数, return指明返回值 在使用 phpDocumentor 等工具生成文档…

PHP 循环引用的问题

问题 为了引出问题, 先来看下面一段代码: <?php $arr [a, b,c, d, ];foreach ($arr as &$each){echo $each; } echo PHP_EOL; foreach ($arr as $each){echo $each; }这段代码很简单, 输出数组的元素两次, 感觉会输出两次 abcd? 不好意思, 输出结果如下:  是不是感…