ai_socktype 不支持 Servname
Posted
技术标签:
【中文标题】ai_socktype 不支持 Servname【英文标题】:Servname not supported for ai_socktype 【发布时间】:2014-05-29 12:43:15 【问题描述】:我正在使用 Vagrant 运行 Centos 虚拟机。机器似乎运行正常,但是当我尝试同步 Perforce 时,我可以看到以下错误:
[vagrant@vagrant-c5-x86_64 ~]$ /perforce/p4 sync -f ...
Perforce client error:
Connect to server failed; check $P4PORT.
failed.TCP connect to perforce.xxx.com:1666
Servname not supported for ai_socktype
我已阅读此http://www.ducea.com/2006/09/11/error-servname-not-supported-for-ai_socktype/ 并尝试在/etc/services
中设置端口,但没有成功。我什至不确定问题是否与 Perforce 或操作系统有关。
有什么提示吗?
【问题讨论】:
P4PORT 设置正确了吗? 是的,这是我的第一个猜测。从一开始就正确设置。另外,我将 P4CHARSET 更改为“utf8”和“none”。目前还没有结果... “telnet perforce.xxx.com 1666”有效吗? (即建立连接) 它确实有效。机器可以互相看到。 请参阅***.com/questions/43600239/… 以获取类似问题的答案,尽管在这种情况下答案涉及 Perl 脚本中的语法错误。不过,也许它为这个问题的答案提供了线索。 【参考方案1】:我在使用 Tornado/Python 应用时遇到了这个问题。显然,this can be caused 被端口解释为字符串而不是整数。因此,就我而言,我需要更改我的启动脚本以强制将其解释为整数。
application = tornado.web.Application(...)
application.listen(int(port))
【讨论】:
完全不同的库(Kafka-Python),但这解决了我的问题!谢谢【参考方案2】:你能进入你的客户吗?在尝试同步文件之前,尝试创建一个 perforce 客户端:
p4 client
也许问题不是host:port
,而是连接字符串中的其他标志中断。
我个人收到了完全相同的错误,但这是 Perforce 问题。
原因是,Perforce 在寻找其P4USER
/P4PORT
/... 配置时有自己的优先级。
-
ENV 变量(运行
export
)
如果在某处指定了 P4CONFIG
变量,它可以在文件中搜索(如当前/上层目录中的 .perforce
)
问题是,即使它首先搜索 ENV 变量 - P4CONFIG
文件可能会覆盖它。
所以我的$P4PORT
ENV 变量有一个连接字符串 X,但 .perforce
文件有一个连接字符串 Y。
从我的本地 .perforce
文件中删除 P4PORT
- 解决了这个问题。
例如:
$~] echo $P4PORT;
rsh:ssh -2 -q -a -x -l p4ssh perforce.mydomain.com
$~] cat .perforce
# P4PORT="rsh:ssh -q -a -x -l perforce.mydomain.com /bin/true"
P4USER="my_user"
还请记住,Perforce 将在整个目录层次结构中向上搜索 $P4CONFIG
文件(如果配置了一个),因此即使您在当前目录中没有该文件 - 它也可能在上层目录中找到, 在那里 - 你可能有一个你没想到的 $P4PORT
配置..
【讨论】:
【参考方案3】:加上斜线,例如:
http://perforce.xxx.com:1666/
代替:
http://perforce.xxx.com:1666
【讨论】:
以上是关于ai_socktype 不支持 Servname的主要内容,如果未能解决你的问题,请参考以下文章
text ssh:无法解析主机名gitlab.devops:提供的nodename或servname,或者未知
nodename nor servname provided, or not known
Rails 4: Carrierwave/AWS - Excon::Errors::SocketError / getaddrinfo: nodename or servname provided
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename or servname provided,
在说 smtp.start 时获取“`initialize': getaddrinfo: nodename nor servname provided, or not known (SocketErr