In the computer world, the term "port" has three different meanings. It may refer to 1) a hardware port, 2) an Internet port number, or 3) the process of porting a software program from one platform to another.
1. Hardware Port
A hardware port is a physical connection on a computer or another electronic device. Common ports on modern desktop computers include USB, Thunderbolt, Ethernet, and DisplayPort. Previous generations of computers used different ports, such as serial ports, parallel ports, and VGA ports. Mobile devices often have only one port. For example, an iPhone or iPad may have a single Lightning connector. Android devices often have a USB-C port.
The purpose of a hardware port is to provide connectivity and/or electrical power to a device. For example, the USB ports on a computer can be used to connect keyboards, mice, printers, or other peripherals. The USB-C port on a smartphone may be used to charge the device and sync it with a PC.
NOTE: A hardware port may also be called an interface, jack, or connector.
2. Internet Port Number
All data transmitted over the internet is sent and received using a specific set of commands, also known as a protocol. Each protocol is assigned a specific port number. For example, all website data transferred over HTTP uses port 80. Data sent over HTTPS uses port 443. Other common ports include:
- Port 20 - FTP (file transfer protocol)
- Port 22 - SSH and SFTP
- Port 25 - SMTP (outgoing email)
- Port 465 - SMTP over SSL
- Port 143 - IMAP (incoming email)
- Port 993 - IMAP over SSL
Port numbers are similar to wireless channels in that they prevent conflicts between different protocols. They also provide a simple way to implement network security measures, since it is possible to allow or block specific protocols.
3. Porting Software
"Port" may also be used as a verb. Porting software means taking an application written for one platform and making it work on another one. For example, a Windows program may be ported to macOS. An iOS app may be ported to Android.
In order to port a program from one platform to another, it must be written for the corresponding hardware and operating system. Programs built using a universal development environment may be relatively easy to port, while programs that rely heavily on an operating system's API may have to be completely rewritten.