Tag: tcp

我需要保持打开TCP连接的心跳吗?

我有两个通过TCP / IP进行通信的组件。 组件A充当服务器/监听器,组件B是客户端。 两者应尽快沟通。 在任何时候,只能有一个连接(尽pipe这是抛开这个问题)。 我公司的一名高级开发人员表示,我需要在这两个组件之间使用应用程序级别的心跳,以确保连接保持打开状态。 我认为连接保持TCP / IP打开状态,但我已经阅读了许多博客/网站,说这是非常标准的做法,在这些应用程序之间心跳。 我知道部分原因组件A心跳组件B是如果组件B发生通信问题(链路断开或组件B未运行),它可以通知支持。 心跳是否需要其他原因? 如确保经常有东西“在pipe道中”保持开放? 组件A当前每隔20秒检测一次组件B,如果在120​​秒内没有收到任何组件B返回的信息,则closures连接。 然后,如果连接断开,组件B将会定期尝试重新连接,然后继续监听连接。 这工作成功。 重申一下我的问题:保持TCP / IP连接是否需要心跳?

ConnectionTimeout与SocketTimeout

林与我正在使用的图书馆有问题,它可能是图书馆,或者它可能是我用它错了! 基本上当我这样做(超时以毫秒为单位) _ignitedHttp.setConnectionTimeout(1); // v short _ignitedHttp.setSocketTimeout(60000); // 60 seconds 没有超时exception生成工作正常,但是,当我这样做: _ignitedHttp.setConnectionTimeout(60000); // 60 seconds _ignitedHttp.setSocketTimeout(1); // v short 我得到一个套接字exception。 所以我的问题是为什么我不能模拟连接exception? 我误解了套接字和连接超时之间的区别吗? 图书馆在这里 (尚未正式实现)。

TCP套接字和networking套接字之间的区别,还有一次

尽力了解TCP套接字和websocket之间的差异,我已经在这些问题中find了很多有用的信息: websockets和纯TCP之间的根本区别 如何从Web浏览器(客户端)build立TCP Socket连接? 等等… 在我的调查中,我经历了维基百科的这句话: Websocket与TCP的不同之处在于它启用了一个消息stream而不是一个字节stream 我不完全确定它是什么意思。 你的解释是什么?

如何检测远程侧socketsclosures?

如何检测是否在远程端的套接字上调用了Socket#close() ?

什么导致TCP / IP重置(RST)标志被发送?

我试图找出为什么我的应用程序的TCP / IP连接保持打嗝每隔10分钟(正好在1-2秒内)。 我运行了Wireshark,发现在10分钟的不活动状态下,另一端正在发送一个包含复位(RST)标志的数据包。 谷歌search告诉我“RESET标志表示接收器已经变得困惑,所以想中止连接”,但是这是有点缺乏我需要的细节。 什么可能导致这个? 有可能是路由器上的某个路由器负责它,或者它总是来自另一个端点? 编辑:有一个路由器(特别是一个Linksys的WRT – 54G)坐在我的电脑和另一个端点之间 – 有什么我应该找的路由器设置?

应该如何为新服务select默认的TCP / IP端口?

在开发将在TCP / IP端口上侦听的应用程序时,应该如何select默认端口? 假设这个应用程序将安装在许多计算机上,并且避免端口冲突是需要的。

释放一个TCP / IP端口?

netstat -tulnap显示哪些端口正在使用中。 如何在Linux中释放一个端口?

端口如何与IPv6协同工作?

传统的IPv4虚线四进制表示法将地址与端口用冒号分开,如在回送接口上的web服务器的示例中所示: 127.0.0.1:80 但使用IPv6表示法,地址本身可以包含冒号。 例如,这是回送地址的简写forms: ::1 如何用IPv6地址/端口端点的文本表示来表示端口(或其function等同物)?

检查远程主机上一个端口的状态

我需要一个可以检查远程主机端口状态的命令行。 我尝试了ping xxx.xxx.xxx.xxx:161但它不能识别“主机”。 我认为这是一个“好”的答案,直到我对一个我知道该端口打开的主机执行相同的命令。 这是针对Windows上的一个batch file,它将检查远程端口的状态,然后运行使用该远程端口获取信息的命令,然后再次执行远程端口检查命令,然后使用下一个服务器上该端口的命令获取信息, 等等。 我已经到处寻找,并认为ping可能会做到这一点,但必须有各种版本的ping,我认为作为服务器,我这样做并没有显示该选项。 只是笑,我试图从网站的基于Web的远程端口检查器 – 结果是正确的“问题”服务器和正确的服务器。 但是,我不能在批处理中使用500多个服务器IP。 有什么我能做的很简单吗? 我的Perl技能非常生疏(使用它或丢失它),不知道除批处理以外的任何其他基于Windows的语言。 Unix是我的技能,但这必须从Widows Server 2003执行。

WebSockets和纯TCP之间的根本区别是什么?

我已经阅读了关于WebSocket的内容 ,我想知道为什么浏览器不能简单地打开普通的TCP连接,并像其他桌面应用程序一样与服务器通信。 为什么这个通信可以通过websockets?