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 our products

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!

Become a contributor for community

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

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.