草庐IT

network-clients

全部标签

networking - 禁用 TCP SYN 重传

我正在开发一个通过TCP连接到服务器的客户端。服务器被配置为如果一个服务器关闭,则与另一台服务器建立连接。我的要求是如果2s内没有和第一台服务器建立TCP连接,客户端需要和第二台服务器建立连接。以下是我基于测试的观察-TCPSYN消息由客户端发送到第一个服务器以建立连接。由于第一台服务器宕机,1s后,TCPSYN重传发送给第一台服务器。2秒后(由于处理和网络延迟),客户端将TCPSYN消息发送到第二个服务器。因此,将SYN消息发送到第二台服务器需要3秒(1秒+2秒),这不是我想要的。我希望TCPSYN消息在2秒内发送到第二台服务器。为了在2秒内将TCPSYN消息发送到第二个服务器,我想

networking - 为什么 UDP 和 TCP 使用端口号而不是 PID 来定位目标?

如上。也许端口号更可靠,因为进程可以终止?谢谢 最佳答案 进程不是网络概念。不清楚通信方是否有进程的概念。此外,一个进程可以有多个连接。 关于networking-为什么UDP和TCP使用端口号而不是PID来定位目标?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/37642576/

java - Spring 集成 : TCP Client/Server opening one client connection per server connection

我正在尝试使用SpringIntegration实现一个TCP客户端/服务器应用程序,我需要为每个传入的TCP服务器连接打开一个TCP客户端套接字。基本上,我有一堆物联网设备通过原始TCP套接字与后端服务器通信。我需要在系统中实现额外的功能。但是设备和服务器上的软件都是封闭源代码,所以我对此无能为力。所以我的想法是在设备和服务器之间放置中间件,以拦截此客户端/服务器通信并提供附加功能。我正在使用带有入站/出站channel适配器的TcpNioServerConnectionFactory和TcpNioClientConnectionFactory向各方发送消息/从各方接收消息。但是消息

networking - 有没有办法将 ping (icmp) 数据包转换为 TCP 数据包?

我想让PING包走代理程序,但是这个程序只支持从TCP层转发数据包,不支持转发ICMP数据包。有什么解决办法吗? 最佳答案 如果您需要工具,可以使用像psping这样的软件。,paping和tcping.他们测试与ICMPPing类似但基于TCP的时间响应。如果需要手工实现,可以使用SYN包及其响应(SYNACK)来衡量。对于C#,this线程正在讨论实现。 关于networking-有没有办法将ping(icmp)数据包转换为TCP数据包?,我们在StackOverflow上找到一个类

Erlang:Client ip-address, 向特定客户端发送数据包?

有没有办法在Erlang中为tcp连接获取客户端的ip地址?基于客户端连接到服务器的假设?我还想知道是否有必要向特定客户端发送特定数据包;就像服务器没有广播的情况一样,但是我需要ip地址来将数据包发送到特定的客户端,还是服务器只是为每个客户端使用一个引用(erlang:monitor)? 最佳答案 对于另一端的地址,inet:peername(Socket).然而,如果你想处理TCP对话中的每个客户端,一旦每个客户端连接,通常,你会产生单独的erlang进程来处理它,然后TransfertheSocketOwnership到产生的过

networking - tcp程序无法监听80端口

我写了一个简单的tcp服务器程序,让它监听80端口然后我注意到netstat-tulpn|grep"tcp"tcp服务器监听端口改为随机端口,不是80我尝试了其他端口,比如2000,tcp服务器程序运行良好,可以监听该端口但是80是不可能的我检查了是否有其他进程在监听80端口,本来有一个httpd,但我杀了它而且我的tcp服务器仍然无法在端口80上监听我试了几台机器,现象都一样这有什么原因吗?以及如何让我的程序监听80端口? 最佳答案 低于1024的端口被限制。如果您只是玩玩,以root身份运行程序很容易,但是如果您出于安全原因想要

networking - UDP 或 HTTP over TCP/IP 用于简单的多人游戏

我正在构建一个多人游戏,玩家会同时被问到一个问题,他们必须选择一个答案。他们有几秒钟的时间来回答,当时间到了或每个人都回答完时,他们会被问到下一个问题。我计划在服务器端使用Java(或者nodeJS,如果我想学习一个新框架),在客户端使用JS(jQuery和jQueryMobile)。我以后也可能会构建native应用程序,所以我想保持该选项处于打开状态。我的问题是:您建议使用哪种服务器通信协议(protocol)?我正在考虑常规TCP(带有Ajax的HTTP)调用,因为延迟并不是真正的问题,但如果您提出其他建议,我准备好审查这个选择。非常感谢您的帮助 最佳

C# 套接字 : Client Mishandle 'a' as the Client's id

有两个我制作的程序无法运行。有服务器和客户端。服务器通过给用户一个ID(从0开始)来接受许多客户端。服务器根据服务器的ID将命令发送到特定的客户端。(示例:200个客户端连接到1个服务器。服务器选择的ID为“5”,因此服务器将向所有客户端发送命令,客户端将询问服务器他想在哪个ID上执行命令,如果它是“5”,则该客户端将执行并将数据发送到服务器)。客户端有很多命令,但为了创建具有相同错误的最小代码,我只使用了1个命令(dir)。基本上,服务器将命令发送给客户端,如果它与客户端当前ID和服务器当前ID匹配,它将处理该命令。默认情况下,服务器的当前ID是10。以下是帮助想要回答的人的命令列表

networking - 无数据时TCP断开

我查了TCP协议(protocol)的wiki,没发现长时间没有数据传输socket连接会不会超时。我的意思是..不会有物理问题,但两台计算机将有一段时间没有数据可以相互发送。怎么连接还会存在?是否会有一些低级数据传输来帮助它了解它没有损坏?谢谢!对不起,如果问题很愚蠢.. 最佳答案 没有数据通过网络发送来维持TCP连接。您可以简单地通过发送()来自任一对等方的零字节数据包来发送网络层保持事件状态,或者启用套接字选项以使操作系统定期为您发送它们。在我看来,应用层保持事件(您的应用程序协议(protocol)对其进行管理)提供比传输层

networking - TCP连接建立中的两军问题

是twoarmyproblem在TCP连接建立中也看到了吗?我确定这是为了TCP连接释放,但我不确定是否建立。如果有人能验证,那就太好了。谢谢。 最佳答案 这不是同一个问题,主要是因为关闭其中一个段应该是最后一个段,所以确认是不够的,你必须使用定时器来决定是否一个阶段已经结束(你知道那些阶段),所以你可以决定你必须重新发送一个connectioncloserequest只是关闭连接,因为自第二个以来已经过去了太多时间已发送连接关闭请求。另一方面,打开连接时不会有lastsegment因为会有后面的数据段,所以只需要重新发送丢失的连接