posted 23 years ago
This is not really a question about software development process, but I can't think of which forum it should belong in. Anyway, here's an answer.
A modem (short for Modulator/Demodulator) is a device which allows a computer to send and receive data over an analog connection such as a phone line. Modems are typically used for accessing the internet or connecting directly to remote systems or bulletin boards.
When modems were first introduced, there were many different standards, ways of connecting the modem to the computer and ways of connecting the modem to the phone line. These days this has standardized a lot. In modern PCs, modems either connect to a serial or USB port (these are known as "external" modems, because they are outside the case of the PC) or plug in directly to the expansion connectors inside the PC (these are known as "internal" modems.)
An external modem is more flexible, because you can unplug it and use it with another computer with no problem. Internal modems have the advantage that they don't need to plug in to a mains power socket - they get their power from the PC expansion bus.
One important thing to know about a modem is whether it is a "full" modem, which implements a protocol known as the Hayes AT command set and can be used by any software running on any operating system, or a "Winmodem" which has no command set, and can only be used by software running on Microsoft Windows and needs a special Windows driver. If you have the option, a "full" modem is always a better choice.