我认为除了bind之外的每个方法都在那里.我键入:
import socket
socket.bind
Run Code Online (Sandbox Code Playgroud)
在python命令提示符下,获取"AttributeError:'module'对象没有属性'bind'".
如果我做:
from socket import bind
Run Code Online (Sandbox Code Playgroud)
我得到"ImportError:无法导入名称绑定"
否则,dir(套接字)返回297,其他一切似乎都正常.就像我有socket.socket,socket.setsockopt等.只是绑定不存在.
我在Mint 16运行python 2.7.5+.在python 3.3.2+中也是如此,在同一台机器上的ubuntu 12.04 vm上的Python 2.7.3中也是如此.
知道发生了什么事吗?
bind是一个socket 对象的方法,而不是模块
以下是bind创建socket对象后使用where的示例:
取自socket上的 docs
# Echo server program
import socket
HOST = '' # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
conn.sendall(data)
conn.close()
Run Code Online (Sandbox Code Playgroud)