UNIXSocket .connect()但没有套接字

时间:2016-02-08 19:58:44

标签: ruby sockets unix-socket

这适用于我正在进行的网络项目。它要求我们模拟一座桥梁。 套接字基本上成了端口。

但是有人告诉我,为了让Unixsocket工作,它需要完整的socket路径,而且我不知道完整的路径是什么。

无论如何都要绕过这个?

  s = UNIXSocket.new(SOCK_SEQPACKET)
  s.connect(padder(lan_one[i]))

出错的部分是padder(lan_one [i])。 Padder基本上填充了一个"端口"直到它的108个字符长。无论如何,因为"端口"它构成了它并不存在于任何地方。因此,我无法前往它。

1 个答案:

答案 0 :(得分:1)

  

我不知道完整的路径是什么。

将路径指定为<{3}}参数。换句话说,路径就是你所说的。以这种方式打开套接字会在文件系统上创建一个实际文件(如果还没有),如果它无法创建文件,则会失败(或应该这样做),例如因为已存在具有指定名称的文件,或者因为指定路径的目录段不存在。

  

出错的部分是padder(lan_one [i])。 Padder基本上填充“端口”,直到其长度为108个字符。无论如何,因为“端口”组成,它实际上并不存在于任何地方。因此我无法前往它。

我不清楚你应该怎么做。 Unix域套接字没有端口,本身,当然,您无法连接到不存在的套接字。但是,您可以使用路径模拟端口。例如,您可以使用此常规形式的路径:

/base/dir/application/port

请注意,Unix域名套接字的名称可以有多长时间的系统限制。