about summary refs log tree commit diff
path: root/src/tools/packetgen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/packetgen.cpp')
-rw-r--r--src/tools/packetgen.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/tools/packetgen.cpp b/src/tools/packetgen.cpp
new file mode 100644
index 00000000..7d11ed26
--- /dev/null
+++ b/src/tools/packetgen.cpp
@@ -0,0 +1,36 @@
+/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
+/* If you are missing that file, acquire a complete release at teeworlds.com.                */
+#include <base/system.h>
+
+enum { NUM_SOCKETS = 64 };
+
+int Run(NETADDR Dest)
+{
+	NETSOCKET aSockets[NUM_SOCKETS];
+	
+	for(int i = 0; i < NUM_SOCKETS; i++)
+	{
+		NETADDR BindAddr = {NETTYPE_IPV4, {0}, 0};
+	 	aSockets[i] = net_udp_create(BindAddr);
+	}
+	
+	while(1)
+	{
+		unsigned char aData[1024];
+		int Size = 0;
+		int SocketToUse = 0;
+		io_read(io_stdin(), &Size, 2);
+		io_read(io_stdin(), &SocketToUse, 1);
+		Size %= 256;
+		SocketToUse %= NUM_SOCKETS;
+		io_read(io_stdin(), aData, Size);
+		net_udp_send(aSockets[SocketToUse], &Dest, aData, Size);
+	}
+}
+
+int main(int argc, char **argv)
+{
+	NETADDR Dest = {NETTYPE_IPV4, {127,0,0,1}, 8303};
+	Run(Dest);
+	return 0;
+}