Tutorial

What is a Socket?

Published on June 30, 2021
What is a Socket?

Sockets are a way to enable inter-process communication between programs running on a computer, or between programs running on separate computers. Programs that communicate via network sockets typically rely on using the Internet Protocol (IP) to send and receive data.

There are a number of different types of sockets. The most common are:

  • Stream sockets: which use the Transmission Control Protocol (TCP) to encapsulate and ensure reliable delivery of a stream of data.

  • Datagram sockets: which use the User Datagram Protocol (UDP) to transmit datagrams, without needing to establish a persistent connection between systems.

  • Unix Domain Sockets: which use local files to send and receive data instead of network interfaces and IP packets.

  • Raw sockets: which allow applications to create and modify packets instead of relying on the host operating system.

Each IP-based socket on a system is unique, and is identified by a combination of IP address, the protocol that the socket is using (TCP or UDP), and a numeric port number, which is mapped to the application that is using the socket by the operating system. Unix Domain Sockets use the local file that is associated with a socket to identify it uniquely.

To learn more about sockets, and how to examine and troubleshoot them, please read our Understanding Sockets tutorial.

For an in depth explanation of how to implement and use sockets on a Linux system, visit the socket(7) manual page, and the related manual pages there.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel