UDP不会发回任何确认,但它会发送任何响应吗?
我已经设置了客户端服务器UDP程序.如果我让客户端向不存在的服务器发送数据,那么客户端会收到任何响应吗?
我的假设是;
客户端 - >广播服务器地址(ARP)服务器 - >使用其mac地址(ARP)回复客户端客户端向服务器发送数据(UDP)
在任何情况下,客户端只会收到ARP响应.如果服务器存在与否,它将不会获得任何UDP响应?
客户端使用sendto函数发送数据.我们可以在sendto调用后获取错误信息.
所以我的问题是当客户端没有得到任何响应时这些信息是如何可用的.错误代码可以从WSAGetLastError获取.
我试图将数据发送到不存在的主机并发送到调用成功.根据文档,它应该失败,返回值为SOCKET_ERROR.
有什么想法吗??
我在C#中实现了HTTP服务器.使用ab我发现了一个奇怪的性能问题.保持活动关闭时,每个请求花费5毫秒,而保持活动启动时则为40毫秒!
测试页生成单个字节[],使用单个套接字作为回复发送.发送调用.
原因是我可以告诉Nrab在TCP堆栈中使用的算法.
到目前为止,我在每个服务的HTTP请求的末尾使用NoDelay属性.
socket.NoDelay = true;
socket.NoDelay = false;
Run Code Online (Sandbox Code Playgroud)
哪个解决了现在的问题.但我没有备份我的发现的文件.
这是在linux/mono系统上测试的.
有没有标准的方法来刷新TCP连接?
这个答案正在解决同样的问题.这里的不同之处在于我只想暂时禁用该算法.