Hãy để tôi cho bạn một ví dụ: Giả sử bạn muốn giao tiếp / trò chuyện với bạn của bạn, người không sống tại địa chỉ của bạn. Để điều đó xảy ra, bạn phải thiết lập một "kênh liên lạc". Nói rằng, bạn muốn thực hiện giao tiếp này bằng điện thoại. Bạn biết rằng có một mạng lưới các đường dây điện thoại trong thành phố được mở rộng đến mọi nhà.
Bây giờ, có một ổ cắm điện thoại trong nhà của bạn, và một trong nhà bạn bè của bạn. Để việc liên lạc diễn ra, bạn và bạn của bạn phải kết nối với mạng bằng cách cắm điện thoại của bạn vào ổ cắm, ở cả hai đầu của giao tiếp. Các ổ cắm trong lập trình là giống nhau, về mặt khái niệm, như các ổ cắm điện thoại.
Trong lập trình, bạn có hai quy trình (chương trình đang chạy) muốn giao tiếp với nhau. Vì vậy, họ phải thiết lập một liên kết giao tiếp giữa họ. Một lần nữa, có một mạng có sẵn, họ chỉ cần kết nối với mạng này bằng cách sử dụng một số loại ổ cắm. Ổ cắm Unix là một trong những ổ cắm như vậy cung cấp khả năng kết nối / cắm vào mạng này. Vì vậy, trong mỗi hai chương trình, bạn sẽ có một số đoạn mã thực hiện công việc kết nối với mạng thông qua các ổ cắm.
Phần còn lại là chi tiết.