亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

怎么使用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
额敏县| 岳普湖县| 栾川县| 吉首市| 临武县| 梁山县| 闸北区| 疏勒县| 金阳县| 凤台县| 贵定县| 兴化市| 屏山县| 呼和浩特市| 慈利县| 温泉县| 武夷山市| 娱乐| 黄山市| 桃江县| 元阳县| 彰化县| 襄汾县| 仙居县| 南平市| 锡林浩特市| 乐业县| 邹城市| 陆川县| 瓮安县| 常德市| 诸暨市| 女性| 清远市| 陈巴尔虎旗| 阿鲁科尔沁旗| 义乌市| 屏东市| 云霄县| 保山市| 南靖县|