草庐IT

tcp_probe

全部标签

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)。下面是我的做法

带有响应代码的 Java TCP 简单 Web 服务器问题(作业)

这是我们正在上的类(class)的作业,我需要一些帮助。我遇到了一些问题,例如,尝试请求一个不存在的文件,出现404文件未找到页面是有效的,但是当我查看Safari的网络工具时,我可以看到响应代码是200,OK,定义错误,应该是错误的代码。但为什么我没有看到,当发生错误时我发送了错误代码header,但它仍然不起作用。有人可以指出我正确的方向,或者只是说出问题所在,我可以解决它:D吗?主要内容:importjava.io.File;importjava.io.IOException;importjava.net.InetSocketAddress;importjava.net.Serv

networking - 通过 TCP/IP 获得最佳吞吐量的理想消息大小

如您所知,有几个变量可能会影响网络吞吐量,例如窗口大小、数据包大小、突发数......我想通过TCP/IP发送我自己设计的消息。我知道,没有严格的规则来检测最佳吞吐量的最佳消息大小。但是,请给我一些注释,帮助我优化有关消息大小的吞吐量。 最佳答案 TCP没有“消息”,它是一个流协议(protocol)。只需将数据写入尽可能大的block中,让网络堆栈完成其余的工作。如果确保尽快处理单个write()调用很重要,请使用TCP_NODELAY套接字选项禁用Naglealgorithm(否则会将多个小写入合并到一个更大的数据包中)。

c# - TCP 通信 : Send Response

我是套接字编程和TCP通信的新手,我正在开发一个应用程序,该应用程序应该从可以访问服务器但没有互联网连接的计算机接收请求(网站url),然后它应该发送网站给客户作为回应。到目前为止,我已经能够成功收听请求,但是当我尝试发送响应时,浏览器挂起。IPAddressipAddress=IPAddress.Parse("127.0.0.1");TcpListenerlistener=newTcpListener(ipAddress,500);listener.Start();while(true){Socketclient=listener.AcceptSocket();Console.Wri

c# - 与经典 TCP 套接字通信

我正在使用NetMQ(.NET的ZeroMQ实现)编写我的第一个应用程序。我还需要使用传统的TCP套接字(也称为非0MQ套接字)监听从客户端发送的信息。我在官方ZeroMQ文档中看到了对这种套接字类型可用性的引用here,(寻找ZMQ_STREAM),但是关于如何使用它的细节很少(这也没有多大帮助,.NETAPI与C++API有很大不同)。officalNetMQdocumentation也没有提及Streaming套接字类型。最后,我查看了Github上的NetMQ测试套件,并在methodRawSocket中找到了我问题的部分答案。.以下代码段有效:using(NetMQConte

C# tcp 流 - 是否可以在没有监听器的情况下运行流?

我想编写一部分代码,其中我开始使用tcp流发送包,但没有任何部分通过Internet接收它。与此同时,我还希望有另一种方法可以随时连接到该特定流并从连接的那一刻起开始接收字节。我想使用多播,但我发现在Internet上做不到有办法吗?到目前为止我只找到了一些信息,C#中的tcp连接使用点对点方式,所以我的案例听起来无法实现,因为监听器必须始终处于事件状态才能初始化流媒体,我如何绕过它? 最佳答案 编辑添加了一个简单的“代理”示例,该代理重新发布它收到的所有消息。要么使用UDP并将您的数据包广播到一个端点,该端点可能在任何时间点监听,

python - 通过python中的TCP套接字在客户端-服务器之间发送文件?

我正在尝试通过TCP套接字发送和接收文件。当用户输入putabc.txt时,abc.txt应该被复制到服务器。当用户键入getdef.txt时,def.txt应下载到用户计算机。(实际上我必须实现另外2个方法-ls列出客户端目录中的所有文件和lls列出服务器中的所有文件,但我没有这样做还。)这是代码服务器importsocketimportsysHOST='localhost'PORT=3820socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)socket.bind((HOST,PORT))socket.listen(1)wh

sockets - 无法让 blocshop TCP sockets-for-cordova 工作

需要让Ionic移动应用程序使用TCP套接字连接到JavaTomcat应用程序服务器。已完成以下工作:根据blocshop站点(https://github.com/blocshop/sockets-for-cordova)安装插件的说明:cordovapluginaddcz.blocshop.socketsforcordova在index.html文件的scriptsrc="cordova.js"下添加了脚本src="socket.js"。当在WebStorm中以Debug模式运行时,结构varsocket=newSocket();导致错误:ReferenceError:Socket