草庐IT

TCP_CORK

全部标签

c# - 如何在接收前不知道数据包大小的情况下通过 TCP 套接字接收数据包?

我正在开发一种网络应用程序,它可以将实时视频从一个应用程序异步发送到另一个应用程序,有点像Skype。我遇到的主要问题是我希望能够发送帧但不必每次在接收之前都知道它们的大小。AForge.NET在处理图像时的工作方式是当前帧的大小很可能与之前的帧不同。大小不是静态的,所以我只是想知道是否有办法实现这一目标。而且,我已经尝试先发送长度,然后再发送帧,但这不是我想要的。 最佳答案 首先你要明白TCP本身根本就没有“包”的概念,在用户代码层面是没有的。如果有人根据数据包来概念化一个人的TCP网络I/O,他们可能会弄错。话虽如此,您可以在T

c - TCP 套接字是否以与发送数据相同的方式接收数据?

如果TCP客户端发送这样的数据block:CHUNK1:50bytesofdataCHUNK2:10bytesofdataCHUNK3:20bytesofdataCHUNK4:30bytesofdataCHUNK5:40bytesofdataTCP服务器是否会以同样的方式接收数据:CHUNK1:50bytesofdataCHUNK2:10bytesofdataCHUNK3:20bytesofdataCHUNK4:30bytesofdataCHUNK5:40bytesofdata或者它可能会像这样到达:CHUNK1:80bytesofdataCHUNK2:30bytesofdataCHU

tcp - 使用 Varnish 时大量连接卡在 CLOSE_WAIT 状态

我遇到了一些关于varnish的奇怪问题,大量连接卡在CLOSE_WAIT状态,就像varnish没有关闭连接一样。这让我认为内核正在等待Varnish关闭连接,考虑到这一点,从我的角度来看,它可能是Varnish或内核中的错误。不过,在深入研究varnish代码之前,我想听听你们的观点,并了解这种症状是否可能由任何其他参数引起?显然,如果您曾经遇到过这个问题并找到了解决方案,那将会更有帮助。仅供引用:#netstat-pan|grepvarnish|awk'/tcp/{print$6}'|sort|uniq-c35902CLOSE_WAIT12148ESTABLISHED3LISTE

VB.NET如何连续读取TCP流

早上好经过多次折腾,我终于让我的小TCP监听器应用程序连接到我的服务器并监听流量。我能够连接并从端口获得初始响应,但是它不会持续返回流流量,我需要持续监控端口流量,以便我可以有效地将其发布到数据库中,谁能帮我解决这个问题我会循环这个吗?这是我目前的代码:ImportsSystemImportsSystem.NetImportsSystem.Net.SocketsImportsSystem.Runtime.InteropServices'DllImportImportsSystem.Security.Principal'WindowsImpersonationContextImports

西门子S1500和三菱QPLC的TCP通讯

QPLC没有以太网口,采用外置以太网QJ71E71模块和S1500的TCP/IP通讯,软件采用GXworks2。1.首先在QPLC中组态如下图所示,以太网QJ71E71模块安装在机架上的最后一个插槽。型号自己手动输入,类型选择智能,点数32点,起始IO----04002.点开以太网设置,设置如下 注意其实I/O要和PLC硬件组态中的地址相同3.运行设置中进行如下设置。始终OPEN等待,通讯代码设置为二进制,运行RUN中写入,IP地址填如何S1500PLC地址的相同网段。4.打开设置中

Java TCP 回显服务器 - 广播

我有一个简单的回显服务器,我希望当连接的用户向服务器键入任何内容时,所有其他客户端和该客户端将收到一条消息+“|MOD”。它现在不会发送给所有客户端但它应该而且我只是不知道我的代码有什么问题,所以现在它只会发送消息+“|MOD”给发送消息的客户端而不是所有其他的也是应该的。我只是不明白,我有一个遍历所有客户端的循环,但它仍然不会发送给所有客户端。服务器:packagecom.murplyx.server;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintWriter;impor

java - 从 TCP 套接字读取 JPEG 字节 (Android)

我有一个应用程序可以显示来自移动设备的闭路电视信号。我成功开发了iOS应用程序,现在我的客户希望我移植到Android。在我卡在这部分代码之前,移植一直很好。这部分代码,我必须连接到TCP套接字服务器。连接后,我不必向服务器发送任何东西,相反,服务器会向我发送JPEG图像。因此,连接后,我必须继续读取,直到收到JPEG结束标记(0xFF、0xD9),然后关闭连接。我打算做的是Sockets=newSocket("ServerIPAddreess",SERVER_PORT);DataInputStreamdis=newDataInputStream(socket.getInputStre

tcp - 协议(protocol)错误怎么办?

使用TCP成帧的正确方法或技术是什么?我在我的node.js服务器中创建了一个简单的成帧器,它在每条消息进入时对它们进行成帧,其中第一个字节是数据包大小。但有一个问题:如果用户故意发送无效数据包怎么办。类似于:0A00030405我们可以看出这是一个损坏的数据包,0A是大小,但我们可以看到实际大小只有05。我们如何防止此类攻击? 最佳答案 如果您收到垃圾,只需关闭socket即可。没有坚持的意义。同行不会说您的语言,或者故意试图让您崩溃或利用漏洞。不要让他。 关于tcp-协议(proto

c# - 如何为 TCP/IP 事务计时

我目前有2个客户端服务器模型。在这两种情况下,我都将大量数据从服务器传递到客户端。我想计算数据在服务器端序列化到客户端收到所有数据需要多长时间;最终,我想看看一个模型比另一个模型快多少。我的问题:最好的方法是什么?我的提示是,这需要在服务器端启动计时器并在客户端设置停止时间。虽然我可以获取两台机器各自的启动和停止时间,但这种方法存在几个问题,例如两台机器的系统时间不同步,时区差异等......我目前正在查看1个模型的各个指标,并将其与另一个模型进行比较,后者有效但不能完全捕获总体交易时间。 最佳答案 让客户端在收到所有内容后做出响应

ios - FFmpeg UDP 超时,重试 TCP 回调

我正在使用FFmpeg在iOS应用程序中读取一些RTSP流。如果防火墙或其他服务阻止网络通过UDP进行接收,FFmpeg会很好地返回到通过TCP进行读取。我的问题是:如何通知我回退到TCP发生了?我需要知道应用程序是否正在通过UDP或TCP读取流,并且仍然让FFmpeg做它很好的回退。这有回调吗?有没有办法获取正在使用的协议(protocol)?谢谢。 最佳答案 我找到了解决方案:建立连接后,可以从AVFormatContext的私有(private)数据(priv_data)中读取较低的传输协议(protocol)。下面是我的做法