如何通过以太网连接将数据写入IP:端口地址?

时间:2009-02-18 15:17:18

标签: c++ networking windows-xp streaming ethernet

我需要编写一个快速而脏的应用程序,通过以太网连接将一些数据写入远程计算机。 远程机器正在等待数据,我只是想在它上面传输一些数据来测试连接和带宽等。

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

无需握手,CRC,特定数据格式,框架等,只需普通旧数据。

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

6 个答案:

答案 0 :(得分:5)

如果你可以使用netcat:

echo "BEEFCAKE" | nc remote.host port

答案 1 :(得分:3)

我可以推荐Beej's Guide to Network Programming。帮助我了解所有网络mumbo-jumbo。

但是,如果你需要一些非常快的东西,为什么不使用.NET呢?对于像这样的事情来说,这有很好的课程。您可以用10行编写数据。

P.S。不要因为这是为* nix编写而被抛弃。 Winsock具有完全相同的功能。

答案 2 :(得分:1)

当你说“IP:端口”时,你必须意味着你需要更高层而不仅仅是以太网帧。您应该阅读TCP / UDP / IP编程。我认为在线最好的资源是Beej's Guide.。这是针对伯克利或Windows插座的。

Python套接字教程here

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

答案 3 :(得分:0)

您可以使用Sockets

以下是一些基本的tutorial

答案 4 :(得分:0)

本教程似乎涵盖了您的需求:

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

答案 5 :(得分:0)

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

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

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

编辑:如果您可以说明您要实现的目标,这可能有所帮助。是测试以太网链路/交换机的速度,还是看看发送和接收CPU有多快交换数据? (可能你可以通过以太网更快地发送数据,而不是接收CPU可以处理它,虽然这取决于以太网和CPU的速度,以及CPU运行的操作系统,它有多忙,它是如何网络的堆栈调整等。)。