面试题答案
一键面试在Python中进行套接字地址解析时,可以使用try - except
块来捕获并处理可能出现的异常。以下是一个示例:
import socket
def resolve_socket_address(host, port):
try:
# 尝试解析主机名和端口号
addr_info = socket.getaddrinfo(host, port)
for family, socktype, proto, canonname, sockaddr in addr_info:
print(f"解析结果: {sockaddr}")
except socket.gaierror as e:
# 处理主机名无法解析等地址相关错误
print(f"地址解析错误: {e}")
except socket.error as e:
# 处理其他套接字相关错误
print(f"套接字错误: {e}")
if __name__ == "__main__":
host = "nonexistent_host"
port = 8080
resolve_socket_address(host, port)
在上述代码中:
- 使用
try - except
块来捕获异常。 socket.getaddrinfo
函数用于解析主机名和端口号。socket.gaierror
用于捕获与地址相关的错误,如主机名无法解析。socket.error
用于捕获其他套接字相关的错误。