Networking using DOSBox IPX
DOSBox has builtin support for IPX networking. This howto contains tricks about using IPX networks as TCP/IP tunnels between two or more DOSBox processes. Current document contains an example configuration with two DOSBox VMs - you can chat between them after a successful deployment.
Prerequisities
Host OS
Supposed to be *NIX-ish. Corollary that if dosbox processes are executed as non-root, then you should select an UDP port number over 1023 for tunneling IPX over UDP - in our example: 33213
Install software
Install dosbox, if it is not installed yet.
Creating working directories
mkdir -p ~/ipxtunnel/server mkdir -p ~/ipxtunnel/client
Creating server.cnf
In folder server, create server.conf with content:
#!/bin/sh [gus] ultradir=C:\ cd "$(dirname "$0")"; dosbox -conf "$(basename "$0")" ; exit $? ; : <<rem gus=false [ipx] ipx=true [autoexec] mount c . c: ipxnet startserver 33213 set mtcpcfg=c:\mtcp.cfg echo packetint 0x60>c:\mtcp.cfg echo hostname cli2>>c:\mtcp.cfg echo IPADDR 192.168.8.2>>c:\mtcp.cfg echo NETMASK 255.255.255.0>>c:\mtcp.cfg ipxnet connect 127.0.0.1 33213 ipxnet status ipxnet ping ipxpkt 0x60 nc -echo -listen 22222 ipxpkt -u ipxnet disconnect ipxnet stopserver exit rem
Set executable rights on it:
chmod +x server.cnf
Creating client.cnf
In folder client, create client.conf with content:
#!/bin/sh [gus] ultradir=C:\ cd "$(dirname "$0")"; sleep 5; dosbox -conf "$(basename "$0")" ; exit $? ; : <<rem gus=false [ipx] ipx=true [autoexec] mount c . c: set mtcpcfg=c:\mtcp.cfg echo packetint 0x60>c:\mtcp.cfg echo hostname cli1>>c:\mtcp.cfg echo IPADDR 192.168.8.1>>c:\mtcp.cfg echo NETMASK 255.255.255.0>>c:\mtcp.cfg ipxnet connect 127.0.0.1 33213 ipxnet status ipxnet ping ipxpkt 0x60 nc -echo -target 192.168.8.2 22222 ipxpkt -u ipxnet disconnect exit rem
Set executable rights on it:
chmod +x client.cnf
Getting files
- From crynwr's pktd11.zip, get IPXPKT.COM and copy it to both server/ and client/ folders
- From mTCP's mTCP_2013-05-23.zip, get NC.EXE and copy it to both server/ and client/ folders
Launching server and client
Change to the common parent folder of server/ and client/ directory. This is ~/ipxtunnel/ in our example. Then run both client and server simultaneously from the same terminal:
server/server.cnf & client/client.cnf &
Wait some seconds until Connected text appears in one window. After that, you can chat between the two windows!
Under non-*NIX host: please execute from different terminals/shells/windows/whatever!