溫馨提示×

FIONREAD 判斷 socket有多少數(shù)據(jù)可讀

小云
120
2023-09-21 09:53:02
欄目: 編程語言

要判斷一個socket有多少數(shù)據(jù)可讀,可以使用`select`或`poll`函數(shù)來檢查socket的可讀性。以下是使用`select`函數(shù)的示例代碼:
```python
import socket
# 創(chuàng)建socket對象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("example.com", 80))
# 使用select函數(shù)判斷socket的可讀性
readable, writable, exceptional = select.select([s], [], [], 0)
# 判斷socket的可讀性并獲取可讀數(shù)據(jù)的數(shù)量
if s in readable:
   data = s.recv(4096)
   data_length = len(data)
   print(f"可讀數(shù)據(jù)數(shù)量:{data_length}")
# 關(guān)閉socket連接
s.close()
```
這個示例代碼中,首先創(chuàng)建了一個socket對象并連接到服務(wù)器。然后使用`select`函數(shù)來檢查socket的可讀性。如果socket可讀,就使用`recv`方法接收數(shù)據(jù),并使用`len`函數(shù)獲取數(shù)據(jù)的長度,即可讀數(shù)據(jù)的數(shù)量。最后關(guān)閉socket連接。

0