打开名为socket的套接字:[4023]

时间:2015-03-30 07:31:16

标签: c linux sockets

我正在开发一个Linux系统,想要为IPC打开一个套接字。我想要与之通信的进程的进程ID是123.该进程已经打开了套接字。我知道可以通过unix域套接字或dbus发送文件描述符。但是:

是否还有一种方法可以通过/ proc / 123 / fd / 15中的名称打开套接字?如果我在/ proc / 123 / fd /中调用“ls -l”,则符号链接看起来像“15 - >插座:[4023]”。有没有办法打开“socket:[4023]”?

编辑:我试图在C中执行此操作。

此致 MAZ

1 个答案:

答案 0 :(得分:2)

方括号中的部分是套接字的inode编号。您可以使用

获取远程端点(用于连接套接字),本地地址(用于侦听套接字)或路径(用于Unix套接字)
ss -nae  | grep 4023 | awk '{print $5}'
如果您没有安装netstat -nae,请

或使用ss。 netstat的输出更不均匀。

两个程序都从/proc/net/tcp/proc/net/unix等处提取此信息。要使用C获取信息,请直接解析这些文件。它们带有可读的标题,因此列应该清晰;想法是一样的:搜索匹配inode的行并提取端点。