我正在尝试学习Socket for Python 3.6。我的第一个项目是消息传递程序。到目前为止我所做的就是这个,
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print (s)
host = socket.gethostname()
print (host)
port = 8140
print (port)
s.bind((host, port))
一旦我运行它,我就明白了,
<socket.socket fd=7, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('0.0.0.0', 0)>
R1shinerg
8140
Traceback (most recent call last):
File "/Users/g.shiner21/Desktop/Python/P2PFile/P2PFile2.py", line 12, in <module>
s.bind((host, port))
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
>>>
非常感谢任何帮助!
答案 0 :(得分:0)
您的代码在我的计算机上正常运行。我相信这里的案例是你的hosts文件中的DNS条目。对于Windows系统,它位于C:\ Windows \ System32 \ drivers \ etc \ hosts中,对于Linux系统,它位于/ etc / hosts中。
在下面添加一个条目
my_setcap_function() {
sudo setcap cap_ipc_owner+ep ${IMAGE_ROOTFS}/usr/bin/mybinary
}
答案 1 :(得分:0)
尝试下面:
import socket
socket.gethostbyname("")
OR
import socket
socket.gethostbyname("localhost")
socket.gaierror
- OSError的子类,getaddrinfo()和getnameinfo()引发了与地址相关的错误的异常。附带的值是一对(错误,字符串),表示库调用返回的错误。串
这可能是因为主机名无法解析为IP地址。检查DNS(域名服务器)设置并将其指向(正确)服务器。