什么是套接字文件?


23

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

Answers:


34

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

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

nc -lU socket.sock

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

echo mytext | nc -U socket.sock

mytext出现在第一个终端上。

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


我似乎没有nc的U选项,但未定义错误的U选项。是socket.sock您之前创建的文件吗?可以使用tmux -S并使用套接字两端之一的套接字文件描述符(通常为3)在该套接字上发送数据吗?
aDoN

@aDoN安装nc.openbsd,您有nc.traditional
Cuauhtli

18

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


多么简单而优雅的想法!
iono
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.