什么是套接字文件?

Moh*_*mel 31 tmux sockets

最近开始用tmux;我正在尝试使用该软件中的结对编程功能。在此过程中创建了一个套接字文件。我的问题是:什么是套接字文件,如何在 Ubuntu 上打开它们以及如何使用它们?

K7A*_*AAY 45

套接字是一种特殊的文件类型,类似于 TCP/IP 套接字,提供受文件系统访问控制保护的进程间网络。

例如,当您使用 netcat 在一个终端中打开侦听套接字时:

nc -lU socket.sock
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式从另一个终端发送数据:

echo mytext | nc -U socket.sock
Run Code Online (Sandbox Code Playgroud)

mytext 出现在第一个终端上。

默认情况下 nc 在文件结束字符后停止侦听。


psu*_*usi 30

unix 域套接字是类似于 TCP/IP 套接字的双向管道。服务器侦听并接受来自客户端的连接,然后可以在新接受的连接上与客户端进行通信。unix 域套接字的特别之处在于它们没有 IP 地址和端口号,而是将文件名作为地址。这允许其他对网络一无所知的应用程序被告知打开文件并读取或写入,并将数据发送到服务器而不是磁盘。

  • 多么简单而优雅的想法! (2认同)