草庐IT

TCP_CORK

全部标签

c# - 为什么零长度的 Send() 在错误的 TCP 套接字连接上不会失败?

我正在尝试在.NET中编写一个非常简单的TCP服务器,它只处理一个客户端的一个连接,我的挑战是检测半开连接。根据这个无处不在的MSDN代码...//Thisishowyoucandeterminewhetherasocketisstillconnected.boolblockingState=client.Blocking;try{byte[]tmp=newbyte[1];client.Blocking=false;client.Send(tmp,0,0);Console.WriteLine("Connected!");}catch(SocketExceptione){//10035=

macos - osx x64 反向 tcp shell 代码程序成功终止

一直在尝试学习osx上的一些64位汇编程序,并认为移植反向tcpshell代码是一个很好的练习。然后程序编译和链接运行良好并监听给定的端口4444,但随后我尝试连接nc-nv127.0.0.14444shell_code成功终止并且返回给nc的响应是:连接127.0.0.14444端口[tcp/*]成功!它被编译并链接到:nasm-g-fmacho64bindshell.sld-archx86_64-macosx_version_min10.7.0-lSystem-obindshellbindshell.o(nasm-vNASMversion2.11.02compiledonFeb19

java - 关于TCP校验和计算的问题

我有两个问题:RFC793指出校验和应该在96位伪header、tcpheader和数据上计算。伪header包括源IP地址和目标IP地址。这不会破坏保持层分离的整个想法,因为现在当网络层开始使用不同大小的地址时,传输层也需要改变。在另一篇SO帖子中,我发现了以下用于计算校验和的Java代码。privatelongcomputeChecksum(byte[]buf){intlength=buf.length;inti=0;longsum=0;longdata;//loopthroughall16-bitwordsunlessthere's0or1byteleft.while(lengt

c# - 分配给 TCP 网络线程池的线程数?

所以尽可能多地提供信息:我已经设置了一个在前台线程上运行的异步TCP服务器,该线程处理接受客户端到服务器上以及在客户端被接受时将客户端分配给线程。目前,我已经设置了一个简单的lambda来为客户端分配ThreadPool中的线程。以前我为每个客户端使用一个线程,而不是将客户端分配给一个线程池。但是,有人告诉我,当线程数达到几百个时,为每个客户端创建一个线程对RAM/CPU来说是有害的。这让我想知道:我应该通过ThreadPool.SetMaxThreads和ThreadPool.SetMinThreads分配“workerThreads”和“completionPortThreads”

java - Spring Integration - 用于大容量应用程序的可靠 TCP

我正在为TCP服务器使用SpringIntegration,它与几千个客户端保持连接。我需要服务器在负载过大的情况下限制客户端并且不丢失消息。我的服务器配置:由于连接工厂的默认任务执行器是无限的,我使用池化任务执行器来防止内存不足错误。用于负载测试的简单客户端:publicclassTCPClientTest{staticSocketsocket;staticListsl=newArrayList();staticDataOutputStreamout;publicstaticvoidmain(String[]args)throwsException{for(inti=0;i当我运行它

sockets - 如何确定打开的套接字是 TCP 还是 unix 域套接字?

我的代码传递了一个打开的套接字。此套接字可以是TCP套接字(AF_INET)或Unix域套接字(AF_UNIX)。根据套接字的域,需要进行不同的处理。特别是如果套接字绑定(bind)到一个地址,那么我可能想以不同的方式接受传入连接。确定我传递的套接字是unix域套接字还是TCP套接字的最佳方法是什么?该解决方案至少需要在OSX和Linux上运行。getsockopt似乎允许获取套接字的类型(例如SOCK_STREAM等),但不允许获取域。getsockname将为OSX上的unix域套接字返回零长度,但这正式是bugLinux行为是different. 最佳

java - 如何使用 TCP 连接同时接受多个客户端?

我有一个服务器,它通过套接字与客户端建立TCP连接。因为我的应用程序应该是聊天,所以我需要服务器使用同一端口同时接受多个客户端,以便他们可以实时通信。我的服务器端是一个Java应用程序,我的客户端是一个Android应用程序。有可能做这样的事情吗?如果是,我该怎么做?这是我的服务器代码:publicclassServer{publicstaticvoidmain(String[]args){ServerClassserver=newServerClass();server.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);server.ini

sockets - Windows Phone P2P TCP/IP 连接

我正在开发WindowsPhone8应用程序(游戏)。在应用程序中,我需要能够与另一部手机建立TCP/IP连接(大厅匹配),然后在没有中央服务器的情况下来回发送消息。我目前正在关注this教程,但是,我需要连接到另一个WindowsPhone,而不是服务器。如果没有集中式服务器,这可能吗?如果是这样,我该怎么做呢?如果没有,我会更好地使用PeerFinder或其他一些P2P类型的连接查找器吗?或者,我可以使用PeerFinder找到另一部手机并在那里设置套接字连接吗?我想本质上,我的问题是:如果我想连接到另一个WindowsPhone但没有中央服务器,有哪些替代方案/我有哪些选择?

tcp - 如何使用 (GPRS)sim900 调制解调器发送 MQTT 'Publish' 数据包?

我正在使用带有树莓派的sim900调制解调器,我能够使用TCP的AT命令连接到服务器,但是当我尝试发送mqtt发布数据包时如下(我使用tcpflow从mosquitto库获取这个数据包):Serial.print("0");Serial.print("0x10");Serial.print("0x0");Serial.print("0x8");Serial.print("ABC/XYZ");Serial.print("HELLO");Serial.print("0x0");它不起作用。 最佳答案 关注这个tutorial使用SIM9

c# - 通过 TCP 套接字发送和接收压缩数据

在通过TCP套接字发送和接收压缩数据方面需要帮助。如果我不使用压缩,代码工作得很好,但是当我使用压缩时会发生一些非常奇怪的事情。基本上,问题是stream.Read()操作被跳过,我不知道为什么..我的代码:using(varclient=newTcpClient()){client.Connect("xxx.xxx.xx.xx",6100);using(varstream=client.GetStream()){//SENDREQUESTbyte[]bytesSent=Encoding.UTF8.GetBytes(xml);//sendcompressedbytes(ifthisis