草庐IT

tcp_proxy

全部标签

java - 检查 Java TCP 服务器上的客户端断开连接 - 仅输出

我有一个JavaTCP服务器,当客户端连接到它时,它会每30秒向客户端输出一条消息。严格要求客户端不向服务器发送任何消息,并且服务器不向客户端发送除30秒间隔消息之外的任何数据。当我断开客户端连接时,服务器直到下次尝试写入客户端时才会意识到这一点。因此,服务器最多可能需要30秒才能识别断开连接。我想做的是每隔几秒检查一次断开连接而不必等待,但我不确定如何做到这一点,因为a)服务器没有从客户端接收b)服务器不能发送任何其他数据。任何人都可以对此有所了解吗?谢谢。 最佳答案 即使您的服务器没有从客户端“接收”,客户端套接字上的非阻塞读取

networking - 是否有任何协议(protocol)规范允许使用 TCP 或 UDP?

是否有任何网络协议(protocol)不是严格意义上的TCP或UDP,但可以与其中任何一个一起使用?例如,HTTP、FTP、STMP、RTMP始终是TCP。DNS、SNMP、DHCP、RIP始终是UDP。有什么既可以是TCP也可以是UDP的东西吗?还是我的上述断言有误?RTSP是我所知道的一个奇怪的东西,它同时使用TCP和UDP来控制音频/视频/质量,但它对每个发送的内容都有严格的要求。我问的是标准的、已发布的或至少是常用的协议(protocol),而不是自定义协议(protocol)。 最佳答案 DNS可以使用UDP或TCP;当响

sockets - TCP server socket编程为什么要得到两个文件描述符?

我把这个教程用于服务器套接字编程link.对于功能,我对此没有问题,我要问的更多是关于架构设计的问题。请看一下教程。我们实际上看到了两个文件描述符,一个是在调用socket()时,一个是在调用accept()时。为什么我们在创建套接字时获得文件描述符是有道理的,因为我们将套接字视为文件;在接受不同的连接时,我们必须有多个文件描述符也是有道理的。但为什么我们需要两者兼备才能发挥作用? 最佳答案 第一个套接字称为监听套接字。TCP是面向连接的流。每个客户端连接都像文件一样在自己的套接字上运行。如果你只有一个套接字,你将无法区分在它上面收

.net - WCF 双工服务和 TCP 端口耗尽

我正在努力解决这个问题。我正在制作一个特定于业务的消息传递应用程序,它将通过WCF(没有vpns,遍布整个网络)将5000到10,000台机器连接回我们的数据中心。它主要用于警报,我需要能够直接向特定客户端发送消息,WCF允许我使用Duplex契约(Contract)完成所有这些操作,但是对于这么多客户端,它让我开始考虑最大化TCP端口空间65535个端口。我假设所有入站连接都将通过我选择的任何端口进入,但返回客户端的出站连接将分别占用一个端口。我很好奇WCF端口共享服务是否做了任何事情来解决这个问题,或者它是否只有65535个端口到一个IP地址?就此而言,MSNMessenger等如

http - 什么时候在 node.js 中使用 TCP 和 HTTP?

愚蠢的问题,但只是在这里确定:什么时候应该使用TCPoverHTTP?有没有一个比另一个更好的例子? 最佳答案 TCP是全双工双向通信。HTTP使用请求/响应模型。让我们看看您是否正在编写聊天或消息传递应用程序。TCP会工作得更好,因为您可以立即通知客户端。使用HTTP时,您必须使用一些技巧,例如长轮询。然而,TCP只是字节流。你必须在它上面找到另一个协议(protocol)来定义你的消息。为此,您可以使用Google的ProtoBuffer。 关于http-什么时候在node.js中使

python - 使用 SocketServer.TCPServer 通过 SSL 的 TCP 服务器

我想将ssl支持添加到基于SocketServer.TCPServer类的现有TCP服务器。所以我覆盖了TCPServer类的默认构造函数并添加了ssl.wrap_socket(...)-call:classMyTCPServer(SocketServer.ThreadingMixIn,SocketServer.TCPServer):def__init__(self,server_address,RequestHandlerClass,bind_and_activate=True):#SeeSocketServer.TCPServer.__init__#(addedssl-suppor

c# - 打开并使用 TCP 端口

我需要使用我的应用程序在网络中的多台计算机之间传输数据。我想到了使用TCP端口。有没有关于如何打开和使用它们的教程?我只想做一个离线工作的文件传输和聊天应用程序。 最佳答案 我建议您查看TcpClient的文档和TcpListener,两者都包含示例。如果没有更具体的问题,很难给出更具体的建议-您是要在TCP/IP之上创建自己的协议(protocol),还是要实现现有的协议(protocol)?如果它是现有API,则很可能已经有更高级别的API可用。 关于c#-打开并使用TCP端口,我们

security - UDP 与 TCP 安全性

我们正在开发一款游戏,数百万客户端与我们的服务器进行通信。这些游戏大部分是回合制的。我知道UDP提供了一些优于TCP的性能优势,但我想知道一种协议(protocol)是否比另一种协议(protocol)具有安全优势?我读过一些网站表明TCP通常会更安全,但我也见过大量利用TCP弱点的攻击。我们的代码能够很好地容忍不可靠的连接和丢失/乱序的数据,这就是我想到UDP的原因。谢谢! 最佳答案 UDP最大的安全问题是您容易受到spoofing的影响。和DOSattacks.由于握手永远不会完成,因此不可能使用TCP在Internet上欺骗地

multithreading - 如何最小化 tcp 服务器应用程序中使用的线程数?

我正在寻找人们在实现为客户端TCP(或UDP)请求提供服务的服务器应用程序时使用的任何策略:设计模式、实现技术、最佳实践等。为了这个问题的目的,我们假设请求的持续时间相对较长(几分钟)并且流量对时间敏感,因此在响应消息时没有延迟是可以接受的。此外,我们既为来自客户端的请求提供服务,也为我们自己建立与其他服务器的连接。我的平台是.NET,但由于无论平台如何,底层技术都是相同的,所以我有兴趣查看任何语言的答案。 最佳答案 现代方法是利用操作系统为您多路复用许多网络套接字,让您的应用程序能够仅处理有流量的事件连接。无论何时打开一个套接字,

Windows 7 : sniff TCP sockets to localhost

我想捕获和分析在运行Windows7操作系统的本地主机上运行的两个应用程序之间的TCP通信数据。我尝试使用Wireshark,但Wireshark无法捕获数据,它似乎只是监控网络接口(interface)进/出的数据。能否介绍一些有用的工具来轻松监控本地TCP数据。 最佳答案 wireshark不起作用的原因是因为嗅探器依赖于网络驱动程序堆栈,而Windows不会通过它公开localhost调用。你应该使用SocketSniffer,它查看Winsock调用并监视网络套接字;下载链接位于页面底部。