簡體   English   中英

如何等待從套接字接收數據?

[英]How to wait for receiving data from socket?

我在c ++中創建了wait_for_data函數,但無法正常工作。

在下面的代碼中,numReady始終為true; 為什么呢?

struct timeval selTimeout;
selTimeout.tv_sec = timeout / 1000;
selTimeout.tv_usec = (timeout % 1000) * 1000;
fd_set readSet;
FD_ZERO(&readSet);
FD_SET(sock, &readSet);

int numReady = select(sock + 1, &readSet, NULL, NULL, &selTimeout);
if (numReady>0) {
// reading data here
} else {
//finish
}

謝謝

即使select報告它准備就緒,套接字也可能會阻塞。 為了避免這種阻塞,您應該在套接字上使用O_NONBLOCK 閱讀手冊頁 - mkaes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM