测试套接字连接的好工具? [关闭]

Posted

技术标签:

【中文标题】测试套接字连接的好工具? [关闭]【英文标题】:Good tool for testing socket connections? [closed] 【发布时间】:2010-10-05 15:29:41 【问题描述】:

我正在编写一个 tcp/ip 客户端,我需要一个“测试服务器”才能轻松进行测试。它应该监听一个可配置的端口,显示客户端何时连接以及客户端发送了什么,允许我手动输入要发送给客户端的文本。 它应该可以在 Windows 上运行。

通常我会使用简单但功能强大的nc.exe (alias "Netcat" available as well on Unix as on Windows),但防病毒软件会将其检测为“黑客工具”,因此我的系统管理员不希望我在工作中使用它。

是否有人使用其他工具来测试套接字连接并对此感到满意?

【问题讨论】:

【参考方案1】:

Hercules 太棒了。它是一个功能齐全的 tcp/udp 客户端/服务器,非常适合调试套接字。网站上的更多详细信息。

【讨论】:

好工具!它实际上完全符合我的需要,并列在大型免费软件站点(如 CNET)上,因此系统管理员不应将其视为问题。唯一的小问题是需要在软件上发布一个链接以供专业使用(参见许可证),但这是相当公平的。 大力神很棒。唯一让我有点恼火的是“发送”文本框的长度。它只能容纳 500 个字符。如果要测试的 Send 数据大于它,那么你需要做多次发送。除非有另一种我不知道的方法。 链接对我来说似乎已损坏。但如前所述,它列在免费软件页面上。对于大公司的开发人员来说,商业许可证是“呃”。 不错的工具,遗憾的是它缺少模拟错误情况等功能......如延迟 SYN/ACK 回复等。 我想推荐 scapy (scapy.net),它非常、非常、多才多艺……【参考方案2】:

netcat (nc.exe) 是正确的工具。我有一种感觉,任何能做你想做的事情的工具都会与你的防病毒软件有完全相同的问题。只需在您的防病毒软件中将此程序标记为“OK”即可(具体操作方式取决于您使用的防病毒软件类型)。

当然,您还需要配置您的系统管理员以接受您没有试图做任何非法的事情......

【讨论】:

好吧,netcat 在坏人手中实际上可以用作黑客工具,因为您可以轻松地将套接字重定向到 shell 并将其用作 telnet 服务器。如果一个工具只是在一个窗口中显示它收到的内容,那么它就不能像黑客工具那样轻松使用。 好点名称。您可以通过确保 nc.exe 上的唯一执行文件权限是您的 Windows 用户来消除这种可能性。 (我假设您担心入侵者会破坏您的机器,而不是您的系统管理员担心您尝试偷偷摸摸的东西!)【参考方案3】:

尝试Wireshark 或WebScarab 第二个更适合将数据插入到交换中(不确定 Wireshark 甚至可以)。无论如何,其中一个应该能够帮助您。

【讨论】:

如果他的系统管理员就 netcat 唠叨他,他可能会对wireshark 大发雷霆。 这似乎并不完全是我正在寻找的东西:WebScarac 似乎仅限于 HTTP。 Wireshark 似乎允许捕获流量,但不能充当测试服务器,我可以在其中手动为客户端输入答案。 我不确定,但我认为 WebScarab 的发展已经超出了最初的预期目的。从我使用它的方式来看,我认为它可以监视通过它正在监视的端口发送的任何流量。仍然所有这些东西都是一个安全问题。【参考方案4】:

我也会使用 netcat,但由于你不能使用它,这里有一个替代方案:netcat :)。您可以找到用三种语言 (python/ruby/perl) 实现的 netcat。您需要做的就是为您选择的语言安装解释器。当然,这不会被视为黑客工具。

这里是链接:

Perl implementation

Python implementation

Ruby Implementation

【讨论】:

如果它有效,那将是非常理想的。我测试了 3 个版本并收到了所有错误消息。 perl 版本至少部分可用。莫非那些脚本是在 Unix 上写的,在 Windows 上遇到小麻烦? 我会试一试,然后回来发表评论。你能指定你运行脚本的参数是什么吗? 一个服务器:-l -p 9988 一个客户端:-c -r localhost -p 9988 我尝试在linux上运行python脚本,但没有成功。 凹凸。有人让这个工作了吗?【参考方案5】:

另一个工具是tcpmon。这是一个用于监控 TCP 连接的 java 开源工具。它不是直接的测试服务器。它位于客户端和服务器之间,但允许查看正在通过“管”的内容并更改正在通过的内容。

【讨论】:

【参考方案6】:

在这种情况下,为什么不自己编写呢?如果您知道自己在做什么,可以在几分钟内完成一个简单的服务器应用程序来测试连接,并且您可以让它准确地响应您的需要,并针对特定场景。

【讨论】:

因为你有一个客户端+一个服务器来调试,而不仅仅是一个客户端!为什么要编写一个软件来做其他软件已经可以做得非常好的事情? 因为你会在这个过程中学到一些东西。

以上是关于测试套接字连接的好工具? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Jmeter 对多个套接字连接进行负载测试?

关闭 BufferedReader/PrintWriter 是不是会关闭套接字连接?

关闭套接字连接

套接字在 32739 次连接后不会关闭

检测非阻塞套接字上的关闭连接

WSA UDP 套接字无法重用,因为它强制关闭连接