草庐IT

c++ - 简单可靠的 UDP C++ 库

我需要一个可靠的UDP库。我写的那个不太好用,我想看看第3方在相同情况下能做什么。Enet将无法工作,因为xcode中存在一些“有趣”的编译问题(关于堆栈溢出,我还有另一个问题)。对于可移植、可靠的UDP库的任何建议,我们将不胜感激。 最佳答案 尝试boost::asio或ACE.我会推荐前者而不是后者。 关于c++-简单可靠的UDPC++库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

c++ - C++ 字符串文字的安全性和可靠性如何?

因此,我想更好地了解C++中字符串文字的工作原理。我主要关心将字符串文字的地址分配给指针并将其传递的情况。例如:char*advice="Don'tstickyourhandsinthetoaster.";现在假设我只是在程序运行期间通过复制指针来传递这个字符串。当然,这可能不是一个好主意,但我很好奇幕后究竟发生了什么。再举一个例子,假设我们创建了一个返回字符串文字的函数:char*foo(){//functiondoesdoesstuffreturn"Yikes!";//somebody'sfeebleattemptatanerrormessage}现在假设这个函数经常被调用,而字符

c++ - 如何可靠地检测对 nullptr 的支持?

我需要将nullptr反向移植到我们拥有的跨平台库,但我无法可靠地检查nullptr支持。最初我有这个:#if__cplusplus>=201103L||(__cplusplus=199711L)//nullptrshouldbeok#else//Tooold#endif但后来我发现,编译一个只打印出__cplusplus值的程序会产生意想不到的结果。一篇博文声称199711L是MS编译器用来表示对C++11的部分支持的值。但我注意到g++5.4默认生成该值。直到你明确告诉它使用-std=c++11进行编译。但是如果你告诉它标准是c++98,值199711仍然显示。这对我来说听起来不对

c++ - string::compare 确定字母顺序是否可靠?

简单地说,如果输入始终是相同的大小写(这里是小写),并且字符始终是ASCII,是否可以使用string::compare可靠地确定两个字符串的字母顺序?因此,对于stringA.compare(stringB),如果结果为0,则它们相同,如果为负数,则stringA按字母顺序排在stringB之前,如果为正数,则stringA排在stringB之后? 最佳答案 根据cplusplus.com上的文档,Thememberfunctionreturns0ifallthecharactersinthecomparedcontentscom

java - 是否有任何框架可以将一个节点生成的数据与不可靠网络中的所有其他节点同步?

我们正在开发一个具有以下要求的系统。有N个系统,每个系统都生成自己独有的数据每个系统都需要来自其他所有系统的数据来执行其最终目标这些系统在不可靠的网络上相互通信。预计某些系统将在很长一段时间内完全不可用(但它们可能会与一些与网络其余部分保持联系的对等点保持联系)换句话说,每个系统需要将其数据复制到N个对等系统。理想情况下,这将以智能方式完成。我考虑过研究数据库同步框架,但我担心它对这个问题来说太过分了。我不认为有任何行冲突的可能性,因为每个系统的数据完全独立于其他系统。问题是,你知道有什么框架可以帮助解决这个问题吗?或者可能是一种表达这个问题的方式,可以帮助我找到解决方案。最后,理想情

具有(非常)快速和可靠切换的 C++ 生产者消费者队列

您好,我正在研究使用快速可靠的生产者消费者队列进行线程切换。我正在使用VC++在Windows上工作。我的设计基于AnthonyWilliams队列,基本上就是一个带有boost::condition_variable的boost::mutex。现在通常notify_one()和唤醒之间的时间在10(罕见)到100微秒之间变化,大多数值在50微秒左右。但是,大约每1000人中就有1人超过1毫秒,有些则超过5毫秒。我只是想知道这些是否是典型值?有没有更快的方法来发出旋转不足的信号?是从这里一直到管理线程优先级吗?我还没有开始研究优先级,但我只是想知道是否有机会让它进入大约10微秒的相当稳

c++ - 使用 std::atomic 和 std::condition_variable 同步不可靠

在用C++11编写的分布式作业系统中,我使用以下结构实现了一个栅栏(即工作线程池外的线程可能会要求阻塞,直到所有当前计划的作业完成):structfence{std::atomiccounter;std::mutexresume_mutex;std::condition_variableresume;fence(size_tnum_threads):counter(num_threads){}};实现围栏的代码如下所示:voidtask_pool::fence_impl(void*arg){autof=(fence*)arg;if(--f->counter==0)//(1)//weha

c++ - 没有有用且可靠的方法来检测 C/C++ 中的整数溢出?

不,这不是Howtodetectintegeroverflow?的拷贝.问题是一样的,但问题是不同的。gcc编译器可以优化溢出检查(使用-O2),例如:inta,b;b=abs(a);//willoverflowifa=0x80000000if(bgcc的人认为这不是一个错误。根据C标准,溢出是未定义的行为,它允许编译器做任何事情。显然,任何事情都包括假设永远不会发生溢出。不幸的是,这允许编译器优化溢出检查。最近的CERTpaper中描述了检查溢出的安全方法。.本文建议在添加两个整数之前做这样的事情:if(((si1^si2)|(((si1^(~(si1^si2)&INT_MIN))+

windows - Windows 文件创建时间戳是否可靠?

我有一个使用保存文件的程序。它需要加载最新的保存文件,但如果该文件不可用或已损坏,则返回到下一个最新的文件。我可以使用Windows文件创建时间戳来判断它们的创建时间吗,或者这是不可靠的吗?我问是因为“更改的”时间戳似乎不可靠。如果需要,我可以在名称中嵌入创建时间/日期,但如果可能的话,使用文件系统日期会更容易。 最佳答案 如果您的目录中充满了任意和随机命名的文件,而“时间”是唯一的因素,那么建立一个与时间戳相匹配的文件名可能更有意义,这样就无需使用工具来查看它。2008_12_31_24_60_60_1000将是我对平面文件系统的

c++ - 在 C++ 应用程序 : gethostbyname() failing 中检查互联网连接的可靠方法

我正在Windows上开发C++网络应用程序。我需要检查是否存在互联网连接。我正在使用gethostbyname(),但当系统通过代理连接时,它提供的信息不正确。InternetCheckConnection()和InternetGetConnectedState()在不同条件下也没有给出可靠的结果。是否有一种可靠的方法来检查涵盖代理和VPN等所有条件的互联网连接?更新:在我们公司的网络中,WinHttpGetProxyForUrl()失败并出现错误ERROR_WINHTTP_AUTODETECTION_FAILED并且WinHttpSendrequest()失败并出现错误ERROR_