草庐IT

tcp_client

全部标签

tcp - TCP TAHOE 和 TCP RENO 有什么区别

TCPTAHOE和TCPRENO有什么区别。我想知道的是关于3-dup-ack和超时的行为?SST发生了什么变化?谢谢! 最佳答案 TCPTahoe和Reno是处理TCP拥塞控制的两种形式,特别是在接收3个重复ack时。Tahoe:处理3个重复的ack类似于(确切地?)接收超时。它首先执行快速重传。然后,将ssthresh值减半为原来的拥塞窗口大小,并将新的窗口大小设置为1并保持慢启动。Reno:Tahoe的继任者,在收到三个重复的ack后进入快速恢复模式,从而将ssthresh值减半。对于每个连续的重复ack(第四、第五、第六),

c - 如何在 TCP/IP 堆栈中启用 tcp psh 标志?

如何在write函数中启用TCPPSH标志以在不填充缓冲区的情况下发送消息? 最佳答案 您是否没有看到您的数据包现在没有设置PSH标志?这里的一些实验表明tcpdump中的以下数据包:00:00:47.633884IP90.155.34.205.52092>216.58.222.100.80:Flags[P.],seq1:16,ack1,win29,options[nop,nop,TSval35956508ecr2650150746],length15:HTTP:GET/HTTP/1.0E..CD.@.@...Z."..:.d.|.

c - 如何在不读取 TCP 连接的情况下检查 TCP 连接是否被对等方正常关闭?

这个问题在这里已经有了答案:c++howtouseselecttoseeifasockethasclosed(4个答案)关闭6年前。我正在使用Linux。谁能给我一个例子,说明如何使用select()或poll()检查TCP连接是被对等方通过FIN关闭还是被RST终止?poll()可以通过在revents中设置POLLHUP或POLLERR来检测RST,但是select()没有这样的功能。在我的测试中,当套接字被RST终止时,getsockopt得到的套接字错误将是ECONNRESET。这是一种有效的方法吗?是否需要确定连接是如何关闭的?谢谢!

tcp - 如何检查非阻塞 luasocket 客户端是否丢失了连接?

我正在为OBS编写一个Lua脚本,它通过TCP连接不断地从ProPresenter(另一个程序)接收数据。我使用LuaSocket库建立连接,并按预期获得数据。问题是,当我关闭ProPresenter时,我无法让我的脚本注册连接已关闭,同时我将luasocket超时设置为0(因为它是非阻塞连接)。我需要脚本始终处于非阻塞状态,否则它会导致所有OBS停滞并且帧率降至1以下...但是,如果我将超时设置为例如。1秒,luasocket注册连接关闭没有问题,并根据this例如,当超时为0时它也应该工作。但显然它没有,我怀疑这是因为该示例使用了旧版本的Luasocket,而最新版本可能已经更改。

如果连接失败,C# 总是重试 tcp 连接

下面是我的代码,用于为我的客户端启动到服务器的tcp连接:Socketclient=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);client.BeginConnect(remoteEP,newAsyncCallback(ConnectCallback),client);连接回调:privatevoidConnectCallback(IAsyncResultar){try{//Retrievethesocketfromthestateobject.Socketclient=(Socket

Python - tcp 套接字,创建一个 catch all 函数来接收数据

我正在尝试编写一个可以重复使用的函数来可靠地接收任何数量的tcp数据。请注意,这假设已经建立了连接-其中conn是我连接的套接字。到目前为止,我有以下内容:importsocketdefrecv_tcp_data(conn,byte_size):chunks=[]whileTrue:data=conn.recv(byte_size)ifdata:chunks.append(data)else:breakreturnchunksasresult上面代码的问题是我不想返回一个已经接收到的数据的列表。无论缓冲区的数量如何,我都想将其全部作为一个编码字符串返回,但我不知道如何将编码字符串的ch

qt - 为什么 QWebSocketServer 在客户端连接尝试时发送 TCP [FIN] 消息

我在Qt5.8中使用QWebSocketServer。大多数WebSocket客户端都可以轻松连接到它,但其中一个会引发异常行为。下面是我使用此客户端(客户端10.8.0.1,服务器10.8.0.8)获得的WireShark捕获。10.8.0.110.8.0.8TCP4451331→8888[SYN]Seq=0Win=2920Len=0MSS=135510.8.0.810.8.0.1TCP448888→51331[SYN,ACK]Seq=0Ack=1Win=29200Len=0MSS=146010.8.0.110.8.0.8TCP4051331→8888[ACK]Seq=1Ack=1W

java - 为 C++ 服务器实现 Java TCP 客户端

我正在尝试实现一个TCP服务器-客户端应用程序。服务器用C++编写,客户端用Java编写。TCP服务器与CURL和Mozilla浏览器一起工作,但不能与CHROME和Java客户端一起工作。客户端脚本能够访问服务器,但无法从服务器消息中检索响应和打印。客户端.java//clientsideimportjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;importj

c - AT 命令 ESP8266 01 : AT+CIPSTART: How to fix response Link type Error/Can't connect with TCP

已解决我正在尝试通过AT命令通过TCP将ESP826601(通过Arduino控制)作为客户端连接到ESP8266设置作为服务器。但是一旦我发送命令“AT+CIPSTART”,响应就是“链接类型错误”。SDK版本为2.0.0。我已经尝试在1和0上使用AT+CIPMUX以及每个ID,但响应始终是链接类型错误左边是服务器/右边是客户端编辑:在几次重新启动后的一些随机时间它可以工作,但只有3%的时间。已解决 最佳答案 我找到了答案。所以我做错的是我没有用AT+CIPMUX=1初始化AP。这意味着它无法打开多个id。所以我只是删除了“0”,

windows - 如何在 Windows XP 中转发进程的 TCP/IP 流量?

alttexthttp://img440.imageshack.us/img440/6950/problemyd1.png(带点的卷线表示网络路由。)有一个名为“foo.exe”的进程,有没有办法将它通过TCP/IP通信的所有内容转发到位于其他地方的转发代理?此转发不应反射(reflect)到其他进程。另一个问题:如果有多个网络适配器,是否可以强制一个进程使用一个特定的适配器。因为在这个例子中targethost.com是已知的,我可以编辑“system32\drivers\etc\hosts”以将targethost.com的IP映射到本地主机,端口8765将是第一个等待传入连接的转