First post, by Myg
I put together this IPXNET + Nullmodem combo server from scratch recently.
The downloads are using C# and .NET (https://dotnet.microsoft.com/) from Microsoft .
If you have any suggestions/comments please don't hesitate to share.
To run the Windows version, run "DOSBoxIPXServer" or double click the exe.
To run the Linux + MacOS version, run "dotnet DOSBoxIPXServer.dll"
JSON settings file (manually edit this for your setup):
If you accidentally delete the "Settings.json" file run the program and it will rebuild it in the same directory with default settings.
Settings.json
(default)
--------------------------------------------
{
"MasterConnect": true,
"ServerName": "Default",
"IpxnetEnable": true,
"IpxnetUdpPort": 213,
"IpxnetUserTimeout": 180,
"IpxnetPingTime": 60000,
"NullmodemEnable": true,
"NullmodemTcpPort": 23,
"NullmodemListenBacklog": 30,
"NullmodemInitPoll": 1000000,
"NullmodemRoomJoinWindow": 60000000,
"NullmodemRoomTimeout": 60,
"NullmodemAvailableDelay": 1000,
"ExternalIpRefreshEnable": true,
"ExternalIpRefreshFrequency": 60000
}
--------------------------------------------
I recommend using default settings unless you are having consistant connection errors.
MasterConnect - List your server on the master server list.
ServerName - Give your server a name on the master server list.
IpxnetEnable - Enable or disable IPXNET service.
IpxnetUdpPort - UDP port for the IPXNET service.
IpxnetUserTimeout - Number of seconds before a user is deleted from the IPXNET user list.
IpxnetPingTime - Number of milliseconds before a IPXNET ping test is performed (resets the IpxnetUserTimeout for clients who respond).
NullmodemEnable - Enable or disable the NullModem service.
NullmodemTcpPort - The TCP port which the nullmodem service will use.
NullmodemListenBacklog - The listen backlog for the Nullmodem TCP socket https://learn.microsoft.com/en-us/dotnet/api/ … n?view=net-10.0
NullmodemInitPoll - The polling countdown in microseconds for a basic security feature I use. Increase if you constantly have connection errors.
NullmodemRoomJoinWindow - The player 2 join window in microseconds (60000000 == 60 seconds).
NullmodemRoomTimeout - The number of seconds a nullmodem room has before it is closed and removed from the system if there is no activity.
NullmodemAvailableDelay - This number, in milliseconds, makes sure that the security data is fully received before processing. Increase if you constantly have connection errors.
ExternalIpRefreshEnable - Enable or disable the IP address refresh service.
ExternalIpRefreshFrequency - The number of milliseconds before the server detects if it has a new ipv4 address (for the IPXNET server).
How this works:
IPXNET - Just connect to the server as normal using the IPXNET commands in DOSBOX.
Nullmodem - There is a connection window between the first and second player. The first player connects using the serial + nullmodem command ("serial(port) nullmodem server: (server) port: (port)") and then the server waits for the second player in a given time window. If the time elapses before the second player connects it will reset back to the start and you will need to connect the first player again.