在python中创建一个套接字

时间:2014-12-31 00:19:00

标签: python python-import

import socket
import sys

HOST = ''   # Symbolic name meaning all available interfaces
PORT = 8888 # Arbitrary non-privileged port

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'

try:
    s.bind((HOST, PORT))
except socket.error , msg:
    print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
    sys.exit()

print 'Socket bind complete'

s.listen(10)
print 'Socket now listening'

#wait to accept a connection - blocking call
conn, addr = s.accept()

#display client information
print 'Connected with ' + addr[0] + ':' + str(addr[1])

在运行此文件时,我得到了

  File "socket.py", line 1, in <module>
    import socket
  File "/root/socket.py", line 7, in <module>
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
AttributeError: 'module' object has no attribute 'AF_INET'

我想创建一个套接字来接受连接并读取/发送数据...... 我在做这件事时遇到了这种错误。 我是python的新手我不知道任何东西我只是从网站上获取代码。 三江源

2 个答案:

答案 0 :(得分:4)

您调用文件socket.py将其重命名为my_socket.py之类的某些内容,并删除同一目录中的socket.pyc文件。

您试图从socket.py文件导入而不是实际的套接字模块,python首先检查本地目录。

答案 1 :(得分:0)

错误仅表示socket对象没有error字段或属性

我认为这是一个命名问题,因为您将文件命名为套接字模块的名称。更改名称,可能会解决问题。