草庐IT

TCP_CORK

全部标签

tcp - 什么时候在 tcp 段中设置推送标志

我在这里问了之前的问题:tcptwosidestryingtoconnectsimultaneously我尝试了解决方案中给出的方法,在使用netcat发送并使用ethereal嗅探数据包时,我观察到当我从一侧向另一侧发送“hello”字符串时,它是在设置了推送标志的段中发送的.谁决定设置推送标志?在TCP段中设置推送或紧急标志的规则是什么?是否可以使用套接字API来实现? 最佳答案 tcp堆栈使用PUSH标志来基本上说“我现在完成了”。它只是表示数据段已完全由源传输。无法在用户空间(您的套接字API)中指示或控制它,因为这只是执行

c - 如何在继续之前显式等待 TCP ACK?

有没有办法让send()等到所有已发送的数据都已被确认(如果已达到确认超时,则返回-1),或者是否有其他机制来在send()之后但在执行其他操作之前等待ACK?我正在使用标准的UnixBerkeley套接字API。我知道我可以实现应用层ACK,但是当TCP的ACK可以很好地达到目的时我宁愿不这样做。 最佳答案 据我所知,没有办法。此外,它也不可靠,ACK仅表示内核收到数据,与此同时客户端或其机器可能已经崩溃。你会认为客户端收到了数据,但实际上它从未处理过它。 关于c-如何在继续之前显式等

C 编程 TCP 校验和

几天来,我一直在为TCP计算校验和时遇到问题。我查看了Internet上的许多资源,但我所看到的示例都没有向您展示如何执行TCP校验和。我也看过RFC文档,但我仍然遇到问题:下面是我用来生成校验和的代码:unsignedshortchecksum(unsignedshort*buffer,intbytes){unsignedlongsum=0;unsignedshortanswer=0;inti=bytes;while(i>0){sum+=*buffer;buffer+=1;i-=2;}sum=(sum>>16)+(sum&htonl(0x0000ffff));sum+=(sum>>1

tcp - 找到一个 TCP 网络调试器,如 fiddler,但其他端口在 80 旁边

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。关闭9年前。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明可以在哪里回答问题。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describethepr

Android NDK 网络问题 : TCP Connection fails

我在使用AndroidNDK时遇到了一些问题。我的项目需要用C语言编写的软件组件,这些组件可以通过TCP接收数据以在Android操作系统上执行。为此,我使用BSD套接字用C语言制作了一个简单的服务器和客户端,并且可以通过PC上的连接成功地来回发送消息。现在我已经将客户端代码移动到NDK中,并且无法从模拟器或实际的android设备连接到我的服务器。NDK编译时没有警告或错误,模拟器/手机在wifi上并且在list中启用了互联网权限。是什么赋予了?它所做的只是创建一个套接字,填写主机/端口信息并尝试连接:如果确实连接,则发送消息,否则返回错误。Android始终为连接返回负值此客户端代

windows - 我一次可以打开多少个 TCP 套接字?

这个问题在这里已经有了答案:IncreasingthemaximumnumberofTCP/IPconnectionsinLinux(5个答案)关闭8年前。我要开发一个TCP服务器应用程序。我在“选择服务器”这一步。我的TCP服务器将有2000多个客户端和一个到每个客户端的套接字。根据操作系统,创建套接字的数量是否有限制?哪个操作系统允许在给定时间打开更多套接字?

android - 无法通过 adb TCP/IP 连接 android 设备

我正在尝试使用adb通过wlan在android设备上进行调试。我正在使用ubuntu和最新版本的adb。而且android版本超过4.x但是我无法连接它。我试过了~$adbconnect10.147.102.16unabletoconnectto10.147.102.16:5555~$adbtcpip5555error:devicenotfound~$adbkill-server~$adbtcpip5555*daemonnotrunning.startingitnowonport5037**daemonstartedsuccessfully*error:devicenotfound~

C++ 应用程序 : Is it possible to pass accepted TCP connection from one process to another?

所以我想知道-是否可以将已接受的TCP连接(在Windows或类似Unix的操作系统上)从一个进程传递到另一个进程?这里的重点是传递连接-而不是以代理应用程序的方式传递数据。 最佳答案 在Unix中,TCP连接表示为套接字文件描述符。当您fork一个进程时,文件描述符由子进程继承,包括TCP套接字。(虽然它们可能会在exec上关闭,如果给定带有fcntl的FD_CLOEXEC标志。)也可以使用本地(Unix)域套接字在不相关的进程之间传输文件描述符;见thisquestion.我不确定Windows。

c# - 当 TCP 没有在一次读取中获得所有字节时,你如何解释

我刚读了一篇文章,说TCPClient.Read()可能无法在一次读取中获取所有发送的字节。你如何解释这一点?例如,服务器可以向tcp流写入一个字符串。客户端读取字符串字节的一半,然后在另一个读取调用中读取另一半。你怎么知道什么时候需要合并在两个调用中接收到的字节数组? 最佳答案 howdoyouknowwhenyouneedtocombinethebytearraysreceivedinbothcalls?您需要在协议(protocol)级别决定这一点。常见的模型有四种:Close-on-finish:每个连接的每一方只能发送一个

tcp - HAProxy 关闭长期存在的 TCP 连接,忽略 TCP keepalive

我已经配置了HAProxy(1.5.4,但我也尝试过1.5.14)以在TCP模式下平衡两个在5672端口上公开AMQP协议(protocol)(​​WSO2MessageBroker)的服务器。客户端通过HAProxy创建并使用与AMQP服务器的永久连接。我已经更改了客户端和服务器TCPkeepalive超时,设置net.ipv4.tcp_keepalive_time=120(CentOS7)。在HAProxy中,我将客户端/服务器超时设置为200秒(>120秒的保活数据包)并使用选项clitcpka。然后我启动了wireshark并嗅探了所有的tcp流量:在来自客户端的最后一个请求之