explaingit

mbbrutman/mtcp

Analysis updated 2026-05-18

47C++Audience · developerComplexity · 4/5Setup · hard

TLDR

A TCP/IP networking library and set of ready made programs that let old DOS computers connect to networks and the internet.

Mindmap

mindmap
  root((mTCP))
    What it does
      Adds TCP/IP to DOS
      Provides networking apps
      Supports old PC hardware
    Tech stack
      C++
      Open Watcom compiler
      DOS
    Use cases
      Get a vintage PC online
      Build DOS network software
      Run retro computing projects
    Audience
      Retro computing hobbyists
      Embedded and systems developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Get an old DOS computer or DOS emulator connected to a network or the internet.

USE CASE 2

Build your own DOS networking program on top of mTCP's TCP/IP library.

USE CASE 3

Include mTCP as a submodule in a DOS project that needs networking.

USE CASE 4

Run and test vintage software on a Compaq Portable, PS/2, or DOSBox setup.

What is it built with?

C++Open WatcomDOS

How does it compare?

mbbrutman/mtcpburakcan/meshcore-mishmeshgsalvadoi/guinxu-engine
Stars474748
LanguageC++C++C++
Setup difficultyhardmoderatemoderate
Complexity4/53/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires the Open Watcom compiler on Windows to cross compile for 16 bit DOS, Linux builds currently break on filename case sensitivity.

See the repository for the exact license terms, the README does not spell out a specific license.

In plain English

mTCP is a networking library and a collection of programs that let old computers running DOS, the operating system that predates Windows, connect to the internet or a local network. DOS itself has no built in idea of TCP/IP, the set of rules that lets computers talk to each other over a network, so mTCP provides that piece along with ready made applications built on top of it. This GitHub repository is a mirror of the project, which the author normally distributes as a plain ZIP file, kept here mainly so people can reference it, fork it, or follow changes over time using git. Detailed notes on how the code is organized, which compiler to use, and the overall design live in an included PDF document rather than in the README itself. Building the project requires a specific older compiler called Open Watcom, running under Windows, to cross compile the code for 16 bit DOS. Trying to build it on Linux currently runs into filename case sensitivity problems that have not yet been fixed. Each individual program lives in its own folder with its own build file, and there is an optional patch step that trims some memory usage and fixes a bug affecting a few specific vintage PC clones. If you want to use mTCP's networking code inside your own DOS project, the author suggests including it as a git submodule so you keep receiving updates, though forking the code directly works too. The author personally answers support questions by email and also runs a low volume mailing list. He is explicit that this is a hobby project done for fun, that he writes all of the code himself, and that he does not use AI for any part of it. He accepts no payment for his work, though he suggests donating to an animal shelter if you want to say thanks.

Copy-paste prompts

Prompt 1
Explain what I need to install to compile mTCP for DOS using Open Watcom.
Prompt 2
Walk me through including mTCP as a git submodule in my own DOS project.
Prompt 3
What hardware and DOS version details should I gather before asking for mTCP support?
Prompt 4
Help me understand the memory saving patch step in mTCP's build process.

Frequently asked questions

What is mtcp?

A TCP/IP networking library and set of ready made programs that let old DOS computers connect to networks and the internet.

What language is mtcp written in?

Mainly C++. The stack also includes C++, Open Watcom, DOS.

What license does mtcp use?

See the repository for the exact license terms, the README does not spell out a specific license.

How hard is mtcp to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is mtcp for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.