Working with UNIX Domain Sockets

Let’s learn about working with UNIX domain sockets.

A UNIX Domain Socket or inter-process communication (IPC) socket is a data communications endpoint that allows us to exchange data between processes that run on the same machine. We might ask, why use UNIX domain sockets instead of TCP/IP connections for processes that exchange data on the same machine? First, because UNIX domain sockets are faster than TCP/IP connections, and second, because UNIX domain sockets require fewer resources than TCP/IP connections. So, we can use UNIX domain sockets when both the clients and the server are on the same machine.

A UNIX domain socket server

This lesson illustrates how to develop a UNIX domain socket server. Although we do not have to deal with TCP ports and network connections, the code presented is very similar to the code of the TCP server, as found in tcpS.go and concTCP.go. The presented server implements the echo service.

Coding example

The source code of socketServer.go is as follows:

Get hands-on with 1200+ tech skills courses.