草庐IT

tcp_probe

全部标签

java - 直接写入socket,获取TCP ZeroWindow

如你所见,我直接每10秒向特定套接字发送一个请求(以保持存活和检测),但它只能发送两次。使用wireshark,发现我发送的第三个包有TCPZeroWindow,无法发送到服务器。以下软件包也是如此。通常,WindowSize应该保持在正常水平,而不是一直减小。源代码有什么问题?任何帮助表示赞赏!我得到了三个包:源码:非常简单publicclasspediy{publicstaticvoidmain(String[]args)throwsIOException{URLurl=newURL("http://bbs.pediy.com");Socketsocket=null;PrintWr

java - 服务器如何获取客户端的IP和端口号TCP?

在UDP中我使用了:InetAddressIPAddress=receivePacket.getAddress();intport=receivePacket.getPort();System.out.println("From:"+IPAddress+":"+port);System.out.println("Message:"+sentence);我对TCP感到困惑。服务器如何使用TCP获取客户端的IP和端口号? 最佳答案 看Socket.getInetAddress()和Socket.getPort().

android - SIP 数据未通过 Android TCP 套接字刷新

套接字通信有问题->SIP服务器和安卓设备。我无法通过大于800字节的TCP发送SIP数据包。如果数据包小于800字节,一切正常。在尝试发送SIP数据包之前建立了成功的TCP握手,但仍然没有。我这样发送数据;Socketsocket=newSocket(ip,port);OutputStreamout=newOutputStream(socket.getOutputStream());out.flush();out.write(msg);send函数没有问题。奇怪的是,对于大于800字节的SIP数据包,一些数据包在从设备发送后几分钟内被传送到服务器。如果我们尝试发送其他数据而不是SIP

sockets - TCP传输持续时间

我有两个应用程序通过TCP套接字进行通信。第一个接收,第二个发送。Firstapp:start=clock();recv();end=clock();当我运行应用程序时,(结束-开始)是150-200毫秒。(总是)第二个应用:while(!stop){start=clock();prepare_message();send();end=clock();}当我运行应用程序时,(结束-开始)是0.00毫秒。(总是)消息负载接近200-300字节,ping持续时间谢谢 最佳答案 发件人在准备就绪时发送消息。接收者必须等待消息,这就是额外时

networking - 使用 TUN/TAP 测试用户空间 TCP/IP 堆栈

是否可以使用TUN/TAP接口(interface)测试TCP堆栈?我正在考虑这样的机制:+--------------------------------+|TCPClient/Server||socket(AF_INET,SOCK_STREAM)||e.g.HTTPServer/Client|+----------+---------------------+||+---------------------+||TUNDevice|||(kerneldoesTCP)||+---------------------+|+------------+-------------------

sockets - TCP端口复制器

我有一个在TCP端口上监听连接并处理接收到的数据的服务。我现在需要拆分这些数据并在“实时”和“测试”机器上进行处理。我想让这成为每台机器的近乎完美的复制,我认为最简单的方法是接收到“复制器”服务,该服务只需将数据复制并重新传输到其他两个端点(使用其中一个能够将数据发送回源)是否有软件可以做到这一点?该平台是WindowsServer。我考虑过自己写这个,听起来并不太难,但如果解决方案已经存在,我更愿意使用它。谢谢 最佳答案 您打算如何解决以下两个问题:如果你真的有TCP协议(protocol),你肯定会在TCP开销上有所不同。因为它

c# - 在 TCP 套接字数据发送 C# 之间获取恒定延迟

我有一个使用C#2010的客户端-服务器应用程序。在TCP套接字中,我为应用程序中所有连接的套接字(客户端-服务器)设置了Nodelay=True和SendBufferSize=0。我正在跟踪每个传入-传出数据包,并使用streamwriter将其写入日志文件,它的autoflush属性设置为true。我注意到一件事,有时在发送数据时2个数据包之间存在恒定延迟(15-16毫秒)。连续发送几次后,此延迟再次出现。为什么会延迟?我怎样才能避免它....查看图片...http://s4.postimg.org/uoly38shp/Trace_1.pnghttp://s14.postimg.o

java - 阻止从输入 TCP 套接字读取

我目前正在为一个分布式系统类(class)项目工作,我们必须在Java中实现一个小型传感器网络。传感器每x秒将温度发送到管理节点(也是传感器),记录它们。根据请求,用户节点连接到管理节点并接收检测到的温度的平均值。问题之一是管理节点可能“失败”。在失败之前,它实际上会向用户节点发送一条消息,该消息需要向将成为新管理员的其他常规节点之一发送一个特殊的数据包。用户节点通过TCP连接与管理员通信,它发送“请求”数据包并接收包含温度的数据包。我目前正在使用java.net.socket来实现它。当管理员失败时,问题就来了。在正常情况下,可以创建一个新线程等待来自服务器的“失败”消息,然后使用新

php - TCP CLOSE_WAIT 连接状态 - 未知原因

为什么socket_shutdown($socket,2);有时会使套接字处于CLOSE_WAIT状态,尽管通过执行socket_close($socket);关闭套接字后立即关闭套接字;? 最佳答案 事实并非如此。CLOSE_WAIT是由在本地应用程序关闭此端之前收到来自对等方的传入关闭引起的。当应用程序关闭此端时,状态转换。关机与它无关。 关于php-TCPCLOSE_WAIT连接状态-未知原因,我们在StackOverflow上找到一个类似的问题: ht

java - tcp 服务器 : why adding delay increases ability to service clients? 的异常行为

大家好!我的问题是关于基于NIO的服务器,我的情况如下:服务器从100个客户端(100个客户端线程)读取消息,每个客户端发送100条消息。因此,消息总数为100x100=10000。我的服务器中有传入消息计数器,它在从某个客户端读取消息后增加。当我刚刚阅读消息时,我的服务器读取了大约9200条消息。当我为模拟服务延迟添加虚拟循环时,我的服务器出人意料地为所有10000条消息提供服务!我的期望是这样的——好吧,即使有很短的延迟,服务器也会设法读取所有10000条消息。因此,如果没有这种延迟,服务器可能可以读取更多消息(服务更多客户端)。但是你看,这是错误的。事不宜迟,事情会变得更糟。He