Difference between Windows Socket & Unix Socket

windows socket Winsock is a Windows-specific API based on the BSD sockets API and is used for network communication on Windows, while Unix sockets are part of the POSIX standard and are used for inter-process communication on Unix-like systems.

Winsock:

  • Purpose: Provides an API for network communication on Windows, based on the BSD sockets API. 
  • Addressing: Uses IP addresses and port numbers for network communication. 
  • API: Uses functions like socket(), connect(), bind(), listen(), accept(), send(), recv(), and closesocket()
  • Header Files: Uses winsock.h and winsock2.h
  • Security: Microsoft documents a possible network security risk in the Windows socket implementation when using a network socket with the SO_REUSEADDR option. 
  • File System Interaction: Unlike Unix sockets, Windows sockets do not directly interact with the file system for communication. 

Unix Socket:

  • Purpose: Enables inter-process communication (IPC) within the same host, using file system paths for addressing. 
  • Addressing: Uses file system paths (e.g., /path/to/socket) for socket addresses. 
  • API: Uses functions like socket(), connect(), bind(), listen(), accept(), send(), recv(), and close()
  • Header Files: Uses sys/socket.h and sys/un.h
  • Security: Unix sockets can be secured using file system permissions, allowing access control based on user or group permissions. 
  • File System Interaction: Unix sockets create a file system entry (a socket file) for the socket address, allowing for file system-based access control. 
  • Example: Database systems like MySQL on Ubuntu often use a file named /var/run/mysqld/mysql.sock for communication with local clients. 
Avatar photo

Technical Lead
Susmita is focused on delivering effective training to the learners in front-end RTL design and Design for Testability and she writes articles that help our readers gain good knowledge on such VLSI topics.
Whatsapp