草庐IT

recv-Buffer

全部标签

java - 寻找 java.net.SocketException : No buffer space available

嗨,我有一个非常难看的问题:java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?)它是客户端-服务器应用程序。客户端是WindowsXPSP232b,两block网卡coreduo。Java1.6。u7。应用程序为本地通信打开了几个服务器套接字,并为rmi到jboss服务器打开了几个客户端套接字。几小时/几天后!我无法打开任何新的客户端套接字来与服务器进行通信。服务器套接字仍然有效。Windowsnetstat显示130到150个连接。手动尝试时,我在~3500个连接后耗尽了缓冲区!我试过:检查我们使用的每个套接字,我们也将其关闭。在后台运行nets

[数据结构-1]:环形buffer以及读写同步

目录一、什么是环形buffer二、环形buffer的优点与使用场合三、环节buffer的读写同步3.1基本原理3.2代码示例一、什么是环形buffer环形缓冲区(CircularBuffer)也被称为环形队列(CircularQueue)或循环缓冲区,是一种数据结构,用于在固定大小的缓冲区中存储和处理数据。环形缓冲区的特点是首尾相连,即缓冲区的最后一个元素和第一个元素相邻。当缓冲区写满时,新数据可以覆盖旧数据,实现循环利用。环形缓冲区常见的应用场景是数据流处理,例如音频、视频、网络通信等。它具有以下优点:内存利用率高:由于循环利用,不会浪费内存空间。读写效率高:读写指针移动固定步长,无需频繁移

C++ 谷歌 Protocol Buffer 。 RPC怎么来的?

我已经按照谷歌RPC上的3个教程尝试了3个不同的来源。而且总是同样的问题。我无法让它工作。我现在非常接近,我正在使用protoserv.我现在遇到的问题是在他们的教程中说:intmain(intargc,char*argv[]){EchoServiceImplecho_service;RpcManagerrpcman;...我找不到如何访问RpcManager及其位置。我对protobuf和protoserv目录进行了grep,但无济于事。只有RpcManager位于.java包中。也许它只是一个不受支持的版本,即使它有C++中的示例。如有任何帮助,我们将不胜感激。即使链接到稳定/简单

java - Google Protocol Buffer 和 UTF-16

我有一个以UTF-16格式存储数据的应用程序(主要是因为中文/Big-5字符)。它使用GoogleProtocolBuffers作为请求/响应协议(protocol)。我知道您不能以字符串格式发回UTF-16数据。我试图通过协议(protocol)以字节数据类型发回数据,并让客户端读取字节数据并创建一个UTF-16字符串。这是最好的方法吗?有没有人遇到过这样的事情?有没有一种方法可以使用字符串数据类型将UTF-8数据转换为UTF-16? 最佳答案 如果您已经拥有一个有效的UTF-8字符串,为什么不尝试string=newString

c++ - 为什么 boost::circular_buffer 在我的基准测试中这么慢?

阅读rationale,boost::circular_buffer看起来很有希望:Suitabilityforreal-timeandperformancecriticalapplications.Fastconstant-timeinsertionandremovalofelementsfromthefrontandback.当我运行一个模拟我的用例的简单基准测试时,将其用作字节缓冲区:写一个更大的block读取较小的block直到为空重复性能绝对糟糕,超过4000x比我自己的hack和spsc_queue慢。lin:101//10240xlock:109//10240xcirc:

c++ - recv() 与 errno=107 :(transport endpoint connected)

嗯..我使用典型的epoll+多线程模型来处理海量套接字,也就是说,我有一个名为epollWorkThread的线程,它使用epoll_wait来处理i/o套接字。当有一个EPOLLIN事件时,recv()将完成工作,我确实使用noblocking模式来允许立即返回。而recv()确实处于while(true)循环中。最初的时候一切都很好(可能是几个小时或几分钟,或者如果我运气好的话),我可以收到信息。但一段时间后,recv()坚持返回-1,errno=107(ENOTCONN)。传输的另一个对等点是用AS3编写的,它确保套接字已连接。所以我对recv()行为感到困惑。提前致谢,如有任

c++ - 游戏机上的 Protocol Buffer

有人在游戏机上尝试过googleprotocolbuffers吗?与手持系统相比,我对PS3或Xbox360等高端游戏机更感兴趣。我感兴趣的是:它是否开箱即用地很好地编译,还是您需要处理protobuf编译器才能正确生成正确的代码?是否存在任何可能导致问题的有争议的库依赖项?是否担心生成过多的代码会导致游戏的代码量激增?我正在考虑在C++环境中使用它。随意添加您认为我应该考虑的更多问题。我不仅在寻找问题,成功的故事也同样有趣。 最佳答案 它编译得非常干净。您只需要将protobufheader放在您的包含路径中,然后与库链接。我也没

c++ - 我应该如何干净利落地跳出 recv 循环?

我在循环中使用recv函数来接收网络数据,但假设我想在循环中停止接收数据。我可以打破循环,但这似乎不是停止接收数据的非常干净的方法。那么有没有什么办法可以完全停止接收数据,或者只是打破循环就可以了?它是HTTPGET/POST请求。这是我正在使用的简化版:do{nDataLen=recv(mySocket,data,BUFFSIZE,0);if(nDataLen>0){/*ProcessData*///I'dliketobreakoutoftheloop//ifsomethingisfoundwhenprocessingthedata//But,Iwanttodothiscleanly

c++ - 从序列化数据中查找 Protocol Buffer 消息类型

我有一些二进制数据,它是通过序列化一个谷歌ProtocolBuffer类获得的。我如何在运行时找出为其序列化数据的类。例如,假设我有一个类abc。我把这个类abc序列化成二进制数据。有没有什么方法可以验证这个二进制数据是通过序列化classabc,而不是其他一些类获得的?另外,如果我用xyz类的parse方法解析这个abc类的二进制数据,我怎么知道解析是否成功。 最佳答案 protobuf不包含在线路上的任何类型信息(除非您自己在protobuf外部这样做)。因此,您不能严格验证-这实际上是一件好的事情,因为这意味着类型是可互换和兼

c++ - Direct3D11(C++) : Updating Texture coordinates in constant buffer?

我正在尝试使用Direct3D制作一个相当基本的2D引擎。我制作了一个LoadImage()函数,它将图像的所有相当静态的行为存储在一个对象中。(着色器、顶点缓冲区、采样器等)我计划在常量缓冲区中使用矩阵定位顶点。但是,我还想有一个DrawImage()函数,它有一个参数来告诉纹理的哪一部分应该被绘制(剪裁),所以我必须更新纹理坐标。由于顶点缓冲区已经预定义,我想知道是否有一种方法可以通过发送到顶点着色器的常量缓冲区来更新纹理坐标?我希望我的问题足够清楚,如果您有任何疑问,请查看下面的代码。boolGameManager::GMLoadImage(Image*pImage,constc