草庐IT

bytes_received

全部标签

python - 在 Python 中将 'bytes' 对象分成 block

我需要使用TCP协议(protocol)和Python的socket模块按特定长度(比如40字节)的“包”发送一个数组。首先,我生成了ints的示例数组:int_array=[i**2foriinrange(1,100)]然后我将它转换为bytes对象:encoded_array=str(int_array).encode()为了检查encoded_array对象的长度,我使用了len(encoded_array),在这种特殊情况下它等于551字节。假设我要发送40字节长的包:这包含完整的13个包和encoded_array最后字节的剩余部分,总共14个包。但我无法弄清楚如何将byte

.net - SocketAsyncEventArgs "pooled byte[]"样式是否有助于减少内存需求?

我看不到pooledSocketAsyncEventArgs样式帮助我减少了为许多并发连接提供服务的服务器的内存消耗。是的,它提供了MS的Begin/End样式的替代方案,上述MSDN页面将其描述为要求为每个异步套接字操作分配一个System.IAsyncResult对象。最初的研究让我相信,出于某种原因,它最多只能分配少数几个字节数组,并在我的数千个并发连接的客户端之间共享它们。但似乎如果我想在数千个客户端连接上等待数据,我必须调用ReceiveAsync数千次,每次都提供不同的字节数组(包装在SocketAsyncEventArgs中),然后,那数千个数组将一直坐在那里,直到客户端

c# - Socket.Receive() 仅在逐步调试代码时才按预期工作

我是套接字编程的新手。我有一个用C#编写的小应用程序,它使用COM端口连接到“键映射器”设备,该设备仅在应用程序发送匹配命令时才响应。例如:如果我需要从映射器获取一些引脚号,我发送了一个十六进制命令。然后我收到正确的回复。现在,我正在尝试使用具有设备唯一IP地址的套接字连接来执行相同的事件,如下所示。privatevoidbutton1_Click(objectsender,EventArgse){byte[]sendCommand=newbyte[]{0x02,0x24,0x31,0x95,0x0A,0x0D,0x03};byte[]ReceivedVal=newbyte[1024]

python - 套接字编程 Python : How to make sure entire message is received?

我正在使用python3.x和套接字模块。服务器在ipv4地址上运行并使用tcp。我阅读了一些关于如何发送和接收数据的教程。为了让服务器或客户端确保发送了整条消息,您可以简单地检查发送的数据量是否等于消息的大小:defmysend(self,msg):totalsent=0whiletotalsent来源:https://docs.python.org/3/howto/sockets.html#socket-howto并为客户确保已收到整个响应thistutorial建议在响应的开头添加响应的大小。我的问题:如何确保我收到消息的第一部分指示消息的大小(假设我的消息包含1000个字符,我

java - FileInputStream 和 DataOutputStream - 处理 byte[] 缓冲区

我一直在开发一个在两个主机之间移动文件的应用程序,当我让传输过程正常工作时(代码仍然非常困惑,对此很抱歉,我仍在修复它)我有点想知道它是如何处理缓冲区的。我对Java网络还很陌生,所以我只是不想以“嗯,我让它工作了,让我们继续前进”的态度结束。文件发送代码。publicvoidsendFile(Stringfilepath,DataOutputStreamdos)throwsException{if(newFile(filepath).isFile()&&dos!=null){longsize=newFile(filepath).length();Stringstrsize=Long.

tcp - 是 10025 用于分配 byte[] 的特殊值

我在一些代码中看到好几次here对于TCP通信,请使用以下行:byte[]bytesFrom=newbyte[10025];因此我想知道这个10025值是否有特殊原因,或者它是否只是随意选择的。谢谢 最佳答案 据我所知,10025没有任何特定含义。这可能是不了解如何使用缓冲区的人随机调整的结果(嘿,我收到了一个10000B的数据包,我没想到,让我增加缓冲区大小......)。不那么随意的值是:经常使用2的幂,因为它们在计算中非常方便(基于二进制数)。所以你经常会看到缓冲区大小,如256或4096.65536-除了是2的幂之外,它还是

android - 接收器上的 "Exported receiver does not require permission"意味着从系统服务接收

我在我的AndroidManifest中声明了一些接收器:第一个用于接收BOOT_COMPLETED操作。第二个用于接收android.net.wifi.SCAN_RESULTS。第三个用于接收我广播的一些Action(intent_action_monitor)和AlarmManager广播的一些Action(intent_action_setup_alarm等)。两个问题:为什么我没有在所有接收器上收到警告?我需要为要从系统服务接收的接收器设置什么权限以更正警告(我了解它的含义并且我不希望任何人使用我的接收器)?将exported="false"做用于启动接收器、wifi接收器、警

android - 接收器上的 "Exported receiver does not require permission"意味着从系统服务接收

我在我的AndroidManifest中声明了一些接收器:第一个用于接收BOOT_COMPLETED操作。第二个用于接收android.net.wifi.SCAN_RESULTS。第三个用于接收我广播的一些Action(intent_action_monitor)和AlarmManager广播的一些Action(intent_action_setup_alarm等)。两个问题:为什么我没有在所有接收器上收到警告?我需要为要从系统服务接收的接收器设置什么权限以更正警告(我了解它的含义并且我不希望任何人使用我的接收器)?将exported="false"做用于启动接收器、wifi接收器、警

Ubuntu,Docker - proxyconnect tcp : tls: oversized record received with length 20527

我正在运行我构建的docker二进制文件(遵循this),当我执行dockerpull时,我收到此错误。Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:proxyconnecttcp:tls:oversizedrecordreceivedwithlength20527我已经按照提到的方式设置了代理here,并且pull在默认守护进程和相同的代理设置下工作正常。将DNS更改为8.8.8.8似乎没有帮助。pingregistry-1.docker.io导致100%数据包丢失。dockerinfo给出了这个Contain

C# Socket.receive 连续接收0字节,循环不阻塞

我正在尝试用C#编写一个最简单的多线程TCP服务器,它从多个客户端接收数据。每次有新的客户端连接时,都会建立套接字连接,并将套接字作为参数传递给新的类函数,然后while循环运行并接收数据,直到客户端连接上。这里的问题是“socket.receive”没有阻塞并且接收到0字节的数据。因此循环连续运行,不会在socket.receive处阻塞(代码中的“clientSocket.Receive(bb)”。)。我使用Chrome浏览器作为客户端进行测试。即使我使用任何其他客户端,TCP服务器的行为也保持不变。客户端只发送一次数据,但服务器不断收到0字节,while循环一直在运行。我正在粘贴