Networking using DOSBox IPX

From DOSBoxWiki
Revision as of 23:54, 27 June 2016 by Naszvadi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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!

Screenshot from netcat (nc.exe) server

DOSBox ipxtunnel tcp server

Screenshot from netcat (nc.exe) client

DOSBox ipxtunnel tcp client

External links