草庐IT

buffer-overflow

全部标签

Java - "no buffer space available"套接字错误原因?

我正在用Java编写网络程序。我使用ServerSocket和Socket对象通过TCP发送和接收消息。如果运行时间短,我的程序运行良好,但是如果运行时间较长,我会收到以下错误:java.net.SocketException:Nobufferspaceavailable(maximumconnectionsreached?):connectatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.PlainSocketImpl.doConnect(UnknownSource)atjava.net.PlainSoc

c# - 如何使用 Protocol Buffer 将类定义从主机发送到客户端?

我目前正在尝试使用protobuf-net通过TCP连接创建一个类的对象。我对此比较陌生,所以我正在学习https://code.google.com/p/protobuf-net/wiki/GettingStarted上的教程。在我的主机上,我有这段代码定义了一个类“Person”[ProtoContract]classPerson{[ProtoMember(1)]publicintId{get;set;}[ProtoMember(2)]publicstringName{get;set:}[ProtoMember(3)]publicAddressAddress{get;set;}}以

tcp - 使用 protobuf-net 反序列化 Protocol Buffer 时如何指定流长度?

我正在尝试使用ProtocolBuffers通过TCP连接将整数从服务器发送到客户端。我相信我的服务器正在向流中写入内容,但是当客户端尝试从网络流中反序列化时,我的代码会无限期地暂停。我的直觉告诉我,客户端不知道流的长度,所以它不知道读取何时完成,但是Deserialize方法没有长度输入,所以我不确定如何实现这个。下面是我的原型(prototype)定义、服务器和客户端的代码。原型(prototype)定义PublicClassProtoPublicClassTCPPublicPropertyCommandAsIntegerEndClassEndClass服务器代码Dimcomman

【JS】设置滚动属性默认自动滚动到底部(overflow:scroll;)

文章目录核心代码应用场景核心代码设置滚动属性默认自动滚动到底部://获取设置了滚动属性的div标签constdiv=document.getElementById('conversationalDiv');//设置滚动的顶点坐标为滚动的总高度div.scrollTop=div.scrollHeight;应用场景场景:实现对话框,默认展示最新的对话内容react实现:import{Input}from'antd';import{useState}from'react';function(){ const[loading,setLoading]=useState(false); //创建dtdd标

c - TCP 连接错误 "No buffer space available"

我在非常大规模(2048台机器)上测试自制分布式键值存储时遇到此错误,它在1024台机器上运行良好。通信模式是n:n,这意味着每台机器向其他机器发送大量请求。我使用CTCP套接字来实现它,SO_REUSEADDR来回收那些套接字。任何人都可以给我一些关于可能导致此错误的可能性的提示吗?代码很复杂,很难在不丢失必要逻辑的情况下将其简化并发布在这里。所以我只想知道所有可能的原因才开始调试。顺便说一句,我将设置更改为:echo8000>/proc/sys/kernel/threads-maxecho8000>/proc/sys/net/core/somaxconn#监听队列的限制,默认为12

python : Clear the buffer in Twisted Transport write

我正在使用Pythontwisted开发一个聊天应用程序。我正在使用transport.write()写入TCP流。但是,有时,我注意到客户端接收到的数据是合并的(串联的)。有什么方法可以清除缓冲区或刷新数据,以便在发送数据时接收数据而不是缓冲数据?谢谢 最佳答案 这与这个FAQ项基本相同:http://twistedmatrix.com/trac/wiki/FrequentlyAskedQuestions#Whyisprotocol.dataReceivedcalledwithonlypartofthedataIcalledtra

Python TCP 套接字数据有时会丢失部分。套接字溢出?

简短描述:客户端通过TCP套接字发送服务器数据。数据长度不一,是由分隔符“~~~*~~~”分割的字符串在大多数情况下,它工作正常。一阵子。几分钟后,数据到处都是。所以我开始跟踪问题,但数据最终出现在错误的位置,因为完整的事情还没有通过。所有内容都进入服务器脚本,并由不同的分隔符-NewData-*解析,然后放入队列中。这是代码:是的,我知道缓冲区很大。不,我不会一次发送那种大小的数据,但我一直在玩弄它。classservice(SocketServer.BaseRequestHandler):defhandle(self):data='dummy'#print"Clientconnec

tcp - Protocol Buffer Wireshark 插件

我正在为googleprotocolbuffer寻找一个wireshark插件。我找到了这个GPBWireshark插件http://code.google.com/p/protobuf-wireshark/显然只有UDP……是否有适用于TCP的wiresharkGPB插件? 最佳答案 您可以改用Wireshark附带的Protobuf解析器。从Wireshark3.2.0开始,现在可以配置*.proto文件以更精确地解析序列化的Protobuf数据(例如gRPC)。从该版本开始支持基于UDP端口解析Protobuf数据。您还可以编

c - nodejs从C接收到的buffer分为两部分

我正在使用tcp传输数据。服务端代码用C写,客户端代码用nodejs写。当我发送一个缓冲区时,有时客户端会收到这个缓冲区的两部分,console.log函数会触发两次,但有时效果很好。以下是nodejs代码和C代码。Node代码:varclient=newnet.Socket();client.on('data',function(data){console.log('data:',data)});C代码:send(socket_file,buffer,strlen(buffer),0) 最佳答案 这是典型的TCP,毕竟它是一个面向

C# 异步 TCP 套接字 : Handling buffer size and huge transfers

当使用阻塞TCP套接字时,我不必指定缓冲区大小。例如:using(varclient=newTcpClient()){client.Connect(ServerIp,ServerPort);using(reader=newBinaryReader(client.GetStream()))using(writer=newBinaryWriter(client.GetStream())){varbyteCount=reader.ReadInt32();reader.ReadBytes(byteCount);}}注意远程主机如何发送任意数量的字节。但是,当使用异步TCP套接字时,我需要创建一