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