'socket' object attribute 'bind' is read-only求解

看书学python
然后学到socket的时候报错,.bind为只读

img


这个咋解决呀?
代码:

img

写法不对,bind是一个函数,直接调用就行,改成s1.bind(address)

有帮助的话,请点采纳该答案~

该回答引用GPTᴼᴾᴱᴺᴬᴵ
该错误是因为您试图将一个元组赋值给 s1.bind 属性,而 bind 属性是只读的,不能直接赋值。正确的做法是使用 bind() 方法绑定地址。

您可以将代码修改为:

import socket

# 建立服务端socket对象
s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 监听的地址和端口
address = ('127.0.0.1', 6999)

# 绑定地址
s1.bind(address)

# 监听
s1.listen(5)

while True:
    conn, addr = s1.accept()
    print(conn, addr)
    
    try:
        data = conn.recv(1024)
        print('receive:', data.decode())
        conn.send(data.upper())
        conn.close()
    except:
        print("关闭了正在占线的连接!")
        break


在这个版本中,我用 bind() 方法绑定了地址,而没有尝试直接给 s1.bind 属性赋值。