91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

怎么使用recvfrom設置非阻塞

小億
461
2023-08-24 07:26:52
欄目: 編程語言

要設置非阻塞模式,可以使用fcntl函數來設置套接字的屬性。

以下是一個使用recvfrom設置非阻塞的示例:

import socket
import fcntl
import os
# 創建套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 綁定地址和端口
sock.bind(('127.0.0.1', 8888))
# 設置非阻塞模式
fcntl.fcntl(sock, fcntl.F_SETFL, os.O_NONBLOCK)
# 接收數據
try:
data, addr = sock.recvfrom(1024)
except socket.error as e:
if isinstance(e.args, tuple):
if e == socket.error(errno.EWOULDBLOCK):
# 表示沒有數據可讀
pass
else:
print(e)
else:
# 處理接收到的數據
print('Received:', data.decode())
# 關閉套接字
sock.close()

在上述示例中,使用fcntl.fcntl函數將套接字的屬性設置為非阻塞模式。這樣,在調用recvfrom方法時,如果沒有數據可讀取,會立即返回一個錯誤。通過捕獲socket.error異常并檢查錯誤代碼,可以判斷是否是非阻塞模式下的超時情況。

0
礼泉县| 石泉县| 达拉特旗| 虹口区| 宝兴县| 伊宁县| 林西县| 新竹县| 汾西县| 卢龙县| 金沙县| 贵德县| 五莲县| 涿州市| 庄浪县| 上饶县| 渭源县| 襄垣县| 资源县| 博乐市| 锡林郭勒盟| 新泰市| 襄樊市| 孝昌县| 丹巴县| 泽库县| 南和县| 朔州市| 葵青区| 桑日县| 黄平县| 高唐县| 乡宁县| 琼海市| 邵武市| 高雄县| 客服| 新兴县| 五台县| 略阳县| 奉贤区|