我不能使用线程,因此我想编写一段时间后可以中断的服务器程序:
d = show_non_modal_dialog("serving clients") s = socket(...) s.bind(...) s.listen() while (!user_pressed_cancel()) { s.accept() # timed accept for like 1 second if timed_out: continue serve_client close_client_sock } hide_non_modal_dialog(d)
答案 0 :(得分:4)
使用非阻塞套接字并在其上调用accept。
s.setblocking(0)
您还可以设置阻止套接字操作的超时
socket.settimeout(value)
您的代码中似乎也存在问题
accept()返回一个(conn,address)对值。所以你的代码应该是
conn, address = s.accept()