【问题标题】:python error : 'module' object has no attribute 'AF_UNIX'python错误:“模块”对象没有属性“AF_UNIX”
【发布时间】:2021-01-21 17:28:55
【问题描述】:

这是我的python代码:

if __name__ == '__main__':  
    import socket  
    sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)  
    sock.connect(('0.0.0.0', 4000))  
    import time  
    time.sleep(2)  
    #sock.send('1')
    print sock.recv(1024)  
    sock.close()  

它显示:

Traceback (most recent call last):
  File "D:\Program Files\test\test\python\client.py", line 3, in <module>
    sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
AttributeError: 'module' object has no attribute 'AF_UNIX'

我能做什么,

谢谢

更新:

Traceback (most recent call last):
  File "D:\Program Files\test\test\python\client.py", line 4, in <module>
    sock.connect(('0.0.0.0', 4000))
  File "<string>", line 1, in connect
socket.error: (10049, "Can't assign requested address")

【问题讨论】:

    标签: python sockets


    【解决方案1】:

    在 Windows 上创建套接字对象时,您应该这样做:

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    

    AF_INET 用于 Internet 地址,AF_UNIX 用于 UNIX 进程间通信。后者显然只在 UNIX 平台上可用。

    另外,请关注this example,了解如何实现一个简单的套接字服务器和客户端。

    【讨论】:

    • 但我想满足 ip : 0.0.0.0 ,所以这是一个 localhost ip ,是吗?我可以选择什么。
    • 而不是 0.0.0.0,使用 "" 它绑定到本地主机的所有接口。我还认为实现基本 Socket 服务器和客户端的示例可能对您有用。用例子更新答案。
    猜你喜欢
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多