1

我需要编写一个快速而肮脏的应用程序,以通过以太网连接将一些数据写入远程机器。远程机器正在等待数据,我只想向它发送一些数据以测试连接和带宽等。

例如,我希望能够通过连接发送已知模式的数据(简单计数或重复模式),并能够将带宽增加 x2、x10、x100 等。

无需握手、CRC、特定数据格式、帧等,只需简单的旧数据。

请...没有第三方库,只有 C++(或 C,或 python)

4

6 回答 6

5

如果可以使用 netcat:

echo "BEEFCAKE" | nc remote.host port
于 2009-02-18T15:53:32.743 回答
3

我可以推荐Beej 的网络编程指南。帮助我理解了所有的网络大话。

但是,如果您需要真正快速的东西,为什么不使用 .NET?这有很好的类来做这样的事情。您可以在 10 行中写入数据。

PS不要因为这是为 *nix 编写的而感到厌烦。Winsock 具有完全相同的功能。

于 2009-02-18T15:20:23.820 回答
1

当您说“IP:端口”时,您必须意味着您需要比以太网框架更高的层。您应该阅读 TCP/UDP/IP 编程。我认为最好的在线资源是Beej's Guide。. 这是针对 berkeley 或 windows 套接字的。

Python 套接字教程在这里

或者只是使用谷歌搜索“[语言]中的套接字编程”。

于 2009-02-18T15:20:44.537 回答
0

您可以使用Sockets

这是一些基本教程

于 2009-02-18T15:19:25.900 回答
0

本教程似乎涵盖了您想要的内容:

http://www.amk.ca/python/howto/sockets/

于 2009-02-18T15:24:57.820 回答
0

听起来您希望能够使链路饱和以进行测试,而不考虑接收器是否可以接受所有数据。因此,您将不想使用 TCP,因为它已被确认,并且流受控以避免超出接收器。

使用 UDP 可能最容易,但如果您真的想直接编写以太网帧,您也可以考虑使用原始套接字(即,如果您需要发送没有 IP/UDP 标头的数据,只需发送原始以太网帧。在这种情况下,您需要放入以太网帧的目标 MAC 地址,以便它到达正确的位置)。

关于成帧和 CRC:以太网硬件将成帧数据包并生成/检查 CRC。

编辑:如果你能说明你想要达到的目标,它可能会有所帮助。是测试以太网链路/交换机的速度,还是查看发送和接收 CPU 交换数据的速度?(您通过以太网发送数据的速度可能比接收 CPU 处理它的速度更快,尽管这确实取决于以太网和 CPU 的速度,以及 CPU 正在运行的操作系统、它的繁忙程度、它的网络情况堆栈已调整等)。

于 2009-02-18T15:44:58.147 回答