如何有效利用GitHub student pack中的工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何有效利用GitHub student pack中的工具相关的知识,希望对你有一定的参考价值。

刚开始看到这个的时候,还是一个学姐转发说,想要那个黄色大书包,资料填了一半发现不是送书包的,很失望。点开看了一眼,送的东西价值比书包要贵好多好么,这是直接在发钱啊。

这个包的思路应该就是给学生开发小项目创业赚钱提供机会的。有开发工具、有域名和服务器、有协作应用、有云数据库、有邮件伺服,一套下来足够你做个东西出来发布出去卖出钱来。具体的你可以仔细看看想想嘛。

如果不搞那么多东西,最少这下面几样东西是真金白银才能买到的。

1. DigitalOcean,以前的时候VPS一直在用linode,最低的配置一个月也是20刀,直到后来发现了DO最低配置一个5刀,而且还可以按时间付费,这个包里直接就送了100刀啊。5刀配置的足够你架设个blog、搭设个VPN什么的,戳股点啥乱七八糟的都行啊。
ps.附加上个推广链接 SSD Cloud Server, VPS Server, Simple Cloud Hosting <-由此注册可获得10刀优惠

2. Namecheap 直接送一年的.me域名和SSL证书啊。 这是白送的啊关键。

3. GitHub 5个私有项目 买吧划不来 不买吧有时候还要用 这正好送了
参考技术A GitHub推出了Student pack, 将一些开发工具免费提供给学生使用:https://education.github.com/pack

Atom — A hackable text editor for the 21st Century
Bitnami — Install cloud applications in a single click
Crowdflower — Crowdsourcing and data enrichment platform
DigitalOcean — Simple cloud hosting, built for developers
DNSimple — Simple DNS management with one-click services and a robust API
GitHub — Powerful collaboration, code review, and code management, includes 5 private repositories.
HackHands — Live programming help available 24/7
Namecheap — Domain name registration and SSL certificates
Orchestrate — Unified search, time-series, geolocation, graph database and API
Screenhero — Screen sharing for collaboration in teams
SendGrid — Email infrastructure as a service
参考技术B 那啥,你不懂怎么用就别申了,真心的。人家都说明了。。

(话说这些资源本来就该需求驱动购买,突然送到穷屌丝学生手里人家不会用也正常嘛哈哈。

我就讲DO那一百美刀怎么错误使用吧。
知乎上没有几个同学我就直说了吧,有的小孩拿到亚马逊或者GAE送的额度就去开机器算BTC了,你可以参考一下,毕竟pack里面有100刀的DO额度。本回答被提问者和网友采纳

qt中如何解包利用python 的struct.pack()函数打包的数据

我在学习socket编程,要从python编的客户端传递一个文件到qt编的服务器端。文件的大小、名字等信息我利用struct.pack()进行了打包成一个二进制数据包,现在qt可以接受到这个数据包,但是不知道如何解读出里面的信息。有没有大神知道,求指点。
利用其它方法能够解决这个问题也可以。

在Python中使用struct模块打包数据和在C/C++语言中定义一个结构体(也是把多个成员打包到一块)差不多。
只要客户端告诉了你打包的数据的格式(比如:数据包的总长度、数据包中各个数据域的长度及类型,以及端序——大端还是小端),然后定义一个等价的C语言结构体,并把接收到的数据放入一个这样的结构体变量(对象)中就完成了解包工作。然后,访问结构体中的特定成员,就是访问传送过来的特定数据了。追问

我在python中打包的数据格式为

fhead = struct.pack('qq%ds'%len(filename),totalSize,len(filename),filename)
请问在qt中应该如何定义struct呢?

追答

由于数据包长度不是固定的,而且数据包也不复杂,这里就不用定义结构体了。可以按照如下方式处理(假设你的TCP Server中包含一个QTcpSocket的子类——ClientObj,来表示一个连接对象):
ClientObj::ClientObj(QObject *parent) :
QTcpSocket(parent)

connect(this, SIGNAL(readyRead()), this, SLOT(readClient()));


void ClientObj::readClient()

QDataStream in(this);
in.setVersion(QDataStream::Qt_5_2);
in.setByteOrder(QDataStream::LittleEndian);

qlonglong totalSize;
qlonglong fileNameLen;
QByteArray fileNameBytes;

in >> totalSize >> fileNameLen;
fileNameBytes = read(fileNameLen);

QString fileName(fileNameBytes);

std::cout << totalSize << ", " << fileNameLen << ", " << qPrintable(fileName) << std::endl;

需要注意的一点是服务器端接收数据的时候,需要和客户端打包时使用相同的端序。Python 3.x中:
fhead = struct.pack('qq%ds'%len(filename),totalSize,len(filename),filename)
生成一个小端的数据包;
那么,在使用QDataStream来解析数据包时,也要指定为小端。否则,多字节的整数的高低字节顺序就反了。
QDataStream默认使用大端,这也是我调用setByteOrder的原因(我觉得,让客户端把数据以大端方式打包发送会更妥当)。

参考技术A 好像不是这样用的吧 参考技术B qt是c++?去c++吧问问

以上是关于如何有效利用GitHub student pack中的工具的主要内容,如果未能解决你的问题,请参考以下文章

qt中如何解包利用python 的struct.pack()函数打包的数据

python3 利用struct.pack 动态组建字节流

◦GitHub education pack的申请教程&国内外主流云主机平台对比

GitHub 错误:RPC 失败; curl 92 http/2 流 0 未完全关闭:CANCEL (err 8) | send-pack:读取边带时意外断开连接

通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误

通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误