我在寫一個執行服務器 - 客戶端關係的程序。
在程序中,我使用select()
以獲取客戶端的請求,以及用戶從stdin發出的請求(服務器後面的請求)。
它似乎是select()
適合客戶的要求,但似乎沒有迴應來自stdin
的輸入。
此外,我沒有成功從stdin
recv()
。 有沒有辦法以非阻塞的方式從stdin獲取輸入?我試過使用fgets()
而不是select()
,並且我已經將fcntl()
設置爲非阻塞,它似乎不起作用 - 它仍然阻塞。使用select()從stdin讀取 - 以非阻塞的方式
你有什麼建議? 謝謝。
您可以發佈基於怎樣你試過一些代碼? – cpx 2011-05-24 07:29:44
winsock意味着windows? ;)我認爲select()僅適用於Windows上的套接字,文件處理程序不能通過select來處理,但可以在Unix上獲得文件描述符並將其添加到FD_SET – tvn 2011-05-24 07:49:59
什麼是stdin連接到常規文件?管?插座?它是如何打開的?嘗試發佈展示該問題的小程序。 – Gilles 2011-05-24 08:26:32