2015-05-01 53 views
1

我編寫了一個簡單的應用程序,它可以在C中的兩臺計算機之間提供連接。我在同步讀寫套接字時遇到了問題。我能夠檢查用戶是否按getch()按任意鍵,但我不知道如何檢查它是否在套接字緩衝區中。當我使用read()函數時,它會等待,直到成爲套接字。我想檢查套接字緩衝區,然後使用read(),但我找不到任何函數/標誌來檢查此。也許是這個問題的不同解決方案,也許使用另一個線程來閱讀?如何檢查套接字是否可用?

+4

一個超時的'選擇()'函數是一種方式來獲得當數據到達套接字上的通知。 – mathematician1975

+0

您需要嘗試建立Async套接字。請檢查這個http://stackoverflow.com/questions/2331869/what-are-async-sockets – GingerJack

+0

@Mautokar:你應該至少提供一個示例代碼開始。 – perror

回答

0

您可以使用sys/ioctl.h文件的方法ioctl

#include <sys/ioctl.h> 

... 

int count; 
ioctl(fd, FIONREAD, &count); 

參考信用:This Answer

相關問題