import socket import traceback import sys host = '172.22.102.20' port = 51423 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((host, port)) s.listen(1) ClientSock, ClientAddr = s.accept() while 1: try: buf = ClientSock.recv(1024) if len(buf): print("he say: " + buf.decode()) data = input("I say: ").encode() ClientSock.sendall(data) except: print("Dialogue Over") ClientSock.close() sys.exit(0)是否有缩进错误
时间: 2023-12-17 18:03:09 浏览: 58
是的,有缩进错误。while循环下面的try语句块中,if语句和print语句需要再缩进一级,如下所示:
```
while 1:
try:
buf = ClientSock.recv(1024)
if len(buf):
print("he say: " + buf.decode())
data = input("I say: ").encode()
ClientSock.sendall(data)
except:
print("Dialogue Over")
ClientSock.close()
sys.exit(0)
```
相关问题
class Student: __School="湖州师范学院" def __init__(self,sname,sno,ssex,sage): self.__sname=sname self.__sno=sno self.__ssex=ssex self.__sage=sage print(Student.__School) s=Student("zhangsan","2022082201","F",19) print(s.__sname,s.__sno,s.__ssex,s.__sage,s.__School)
这是一个定义了学生类的代码,并创建了一个学生对象s。在这个代码中,类属性__School是私有的,实例属性__sname、__sno、__ssex和__sage也是私有的。以下是代码的输出结果:
湖州师范学院
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
AttributeError: 'Student' object has no attribute '__sname'
在第一行中,输出了类属性__School的值。在第二行中,试图输出s对象的属性值,但会出现错误。因为属性__sname是私有的,不能直接访问。如果要访问,需要通过类提供的公有方法或属性进行访问。
我运行这段代码import socket import datetime # 创建socket对象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名 host = '192.168.0.128' # 绑定到端口号10000 port = 4545 s.bind((host, port)) # 开始侦听传入的连接 s.listen(1) # 连接到A设备 conn, addr = s.accept() print('连接已建立:', addr) while True: data = conn.recv(1024) if not data: break # 将接收到的消息转换为字符串并添加接收时间 message = data.decode('utf-8') now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') message_with_time = now + ' ' + message + '\n' # 将消息写入到txt文件中 with open('received_messages.txt', 'a') as f: f.write(message_with_time) conn.close() 报错:Traceback (most recent call last): File "inwin.py", line 9, in <module> s.bind((host, port)) OSError: [Errno 99] Cannot assign requested address
这个错误通常是因为在绑定IP地址和端口时出错了。请确保 `host` 变量的值是本机的IP地址,或者使用 `socket.gethostname()` 函数获取主机名。同时,还要确保端口号 `port` 没有被其他应用程序占用。你可以尝试换一个端口号,比如使用 `port = 8888`,并运行代码看看是否成功。
阅读全文