草庐IT

SMB1Protocol

全部标签

c++ - 编译 Protocol Buffer 生成的源文件时是否有更好的方法来解决警告?

对于一个简单的proto文件:messagePerson{requiredint32id=1;requiredstringname=2;optionalstringemail=3;}它由protoc.exe编译,结果用于一个同样简单的测试项目,除了包含protoc生成的文件之外,它基本上什么都不做。我正在使用msvc10构建测试项目(x64),然后它给了我很多警告:Warning1warningC4244:'return':conversionfrom'__int64'to'int',possiblelossofdataD:\Work\protobuf-trunk\src\google

c# - C# 中的 Google Protocol Buffer

我们正在考虑使用Google的ProtocolBuffer通过网络处理c++应用程序和c#应用程序之间的序列化。我的问题是,我为c#找到了几个不同的版本。两者看起来都不错,但是,有人知道两者之间有什么不同(如果有的话)protobuf-netjskeet/dotnet-protobufs 最佳答案 当然;dotnet-protobufs是java版本的移植,因此与核心google实现共享非常相似的API和方法;代码gem、不变性等。Protobuf-net是字节兼容的,但它是一个完整的从头开始的重新实现,遵循标准的.NET习惯用法-

c++ - 在 C/C++ 中实现通信协议(protocol)

我正在开始在软件中实现一些专有的通信协议(protocol)栈,但不知道从哪里开始。这是我以前没有做过的工作,我正在寻求最佳/推荐方法的资源方面的帮助。我将使用c/c++,我可以自由使用库(BSD/BOOST/Apache),但没有GPL。我已经广泛使用C++,所以使用C++的特性是没有问题的。协议(protocol)栈共有三层,并且已经完全指定并正式验证。所以我需要做的就是用指定的语言实现和测试它。还应该提到,协议(protocol)非常简单,但可以通过可靠的物理传输层在不同的设备上运行。我知道协议(protocol)状态机的事件、输入、输出、副作用和行为。一般情况下,接收中断来读取

c++ - 为什么 Protocol Buffer 字节在 C++ 中是字符串?

ProtocolBuffer说它可以containanyarbitrarysequenceofbytes.但是如果我的数据包含'\0',ProtocolBuffer如何从字符串变量中编码我的整个数据。 最佳答案 ProtocolBuffer的C++实现将字节和字符串类型返回为std::string。这个结构包含一个长度函数,告诉你对应的数据有多长(以及数据本身)。因此嵌入的\0字符没有特殊意义。设置函数也接受字符串,或者有些版本接受缓冲区和长度。如果你想设置一个字段,你可以这样做:pb.set_foo(std::string(dat

c++ - 使用 Google Protocol Buffer 的 CMake

我正在尝试使用cmake使用ProtocolBuffer构建我的小项目。有一个根目录,其中包含许多子目录以及许多库和可执行文件。我的第一个想法是将我的.proto文件放在子目录中,但是当我阅读thisanswer时我用它做了一个图书馆。但是当我尝试在我的可执行文件中包含消息头时,它找不到它。错误信息:fatalerror:msgs.pb.h:Nosuchfileordirectory#include"msgs.pb.h"^compilationterminated.我通过在其中创建一个目录“build”然后“cmake..&&make”来运行它。我看过了,似乎生成的文件被放入了buil

c++ - Boost.Asio 与谷歌 Protocol Buffer

我目前正在研究如何改进我们当前的c++网络手工序列化机制,以维护我们现有的二进制协议(protocol)。采用的第一种方法是使用Boost.Asio和Boost.Serialisation使用二进制序列化对其进行编码。无论如何,事实证明它比我们当前的手工实现要慢一些(10%)。任何人都有关于使用googleprotobuf和Boost.Asio的实际_real_work_经验?我在谷歌上搜索了示例,但只能想出这个示例:BoostAsiowithgoogleprotocolbufferssample有人在任何实际项目中这样做过吗?我对性能数据非常感兴趣,因为这必须非常快......

c++ - 如何在 C++ 中使用 Google 的 Protocol Buffer 添加重复字段?

我有以下ProtocolBuffer。请注意,StockStatic是一个重复字段。messageServiceResponse{enumType{REQUEST_FAILED=1;STOCK_STATIC_SNAPSHOT=2;}messageStockStaticSnapshot{repeatedStockStaticstock_static=1;}requiredTypetype=1;optionalStockStaticSnapshotstock_static_snapshot=2;}messageStockStatic{optionalstringsector=1;optio

c++ - Protocol Buffer - 存储双数组、1D、2D 和 3D

如何使用ProtocolBuffer存储双(1D)数组?多维(2D或3D)密集数组呢? 最佳答案 可以简单地模仿C/C++内存布局:messageDoubleMatrix{requireduint32rows=1;requireduint32cols=2;repeateddoubledata=3[packed=true];}要访问数据,请使用data[i*cols+j](row-major)或data[i+rows*j](column-major)。对于方阵,只需存储rows/cols之一。技术上即使在矩形情况下protobuf也会

c++ - Google 的 Protocol Buffer 在实践中处理浮点类型的跨平台程度如何?

Google的ProtocolBuffer允许您在消息中存储float和double。我查看了实现源代码,想知道他们是如何以跨平台的方式做到这一点的,而我偶然发现的是:inlineuint32WireFormatLite::EncodeFloat(floatvalue){union{floatf;uint32i;};f=value;returni;}inlinefloatWireFormatLite::DecodeFloat(uint32value){union{floatf;uint32i;};i=value;returnf;}inlineuint64WireFormatLite::

mysql - SequelizeConnectionError : Client does not support authentication protocol requested by server; consider upgrading MariaDB client

我在nodejs(v6.11.0)应用程序上使用Sequelize版本4.3.0,该应用程序具有Mariadb(mysqlVer15.1Distrib10.0.29-MariaDB,用于debian-linux-gnu(i686),使用readline5.2)在Ubuntu16.04上。当应用程序启动并调用函数时:Sequelize.sync();然后sequelize连接管理器抛出如下错误:UnhandledrejectionSequelizeConnectionError:Clientdoesnotsupportauthenticationprotocolrequestedbyse