MST

星途 面试题库

面试题:Python套接字对象的超时设置及异常处理

在Python中,如何为套接字对象设置超时时间?当设置超时后,在recv方法调用时如果发生超时,会抛出什么异常?请编写代码处理该异常,并合理设置超时时间,确保在一定时间内如果未接收到数据能及时做出响应。
22.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

在Python中,可以使用套接字对象的settimeout方法来设置超时时间。当设置超时后,在recv方法调用时如果发生超时,会抛出socket.timeout异常。以下是示例代码:

import socket

# 创建套接字对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 设置超时时间为5秒
sock.settimeout(5)

try:
    # 连接服务器
    sock.connect(('127.0.0.1', 12345))
    data = sock.recv(1024)
    print(f"接收到的数据: {data.decode('utf-8')}")
except socket.timeout:
    print("接收数据超时,未在规定时间内接收到数据")
finally:
    sock.close()