[問題] select read & write同一fd
請問各位
就是我目前要對一個Socket fd做動作
由於他是在Server端,而且這個fd要可以做讀、寫的動作
所以我採用select做出Async I/O的作業方式
那以下簡略描述一下目前的想法:
int Select_Check;
/*
* Socket 設定
*/
......
......
......
Sock.Bind();
Sock.Listen(10);
FD_SET(Sock, &ReadSet);
FD_SET(Sock, &WriteSet);
while (1)
{
Select_Check = select(maxfd, &ReadSet, &WriteSet, NULL, Timeout);
/*
* 以下進入問題,不多做其他的判斷及處理
*/
if (Select_Check) {
.........
.........
.........
}
}
我想請問的是黃色區塊的部份
這個部份,我是應該直接去做FD_ISSET的判斷嗎?
像是如下:
if (FD_ISSET(Sock, &ReadSet) {
.......
}
else if (FD_ISSET(Sock, &WriteSet) {
.......
}
else {
.......
}
我想問一下,上述的寫法會不會有問題?
因為我不懂select是用什麼去判別資料是否準備好
還請各位先進指點一番,謝謝
--
要感謝的人太多了,那就謝天吧
要改得程式碼太多了,那就改天吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.0.83
推
07/30 21:26, , 1F
07/30 21:26, 1F
→
07/30 21:26, , 2F
07/30 21:26, 2F
→
07/30 21:27, , 3F
07/30 21:27, 3F
→
07/30 22:35, , 4F
07/30 22:35, 4F
→
07/30 22:35, , 5F
07/30 22:35, 5F
→
07/30 22:38, , 6F
07/30 22:38, 6F
→
07/30 22:42, , 7F
07/30 22:42, 7F
→
07/31 08:16, , 8F
07/31 08:16, 8F
→
07/31 08:17, , 9F
07/31 08:17, 9F
→
07/31 08:17, , 10F
07/31 08:17, 10F
→
07/31 08:18, , 11F
07/31 08:18, 11F
→
08/01 00:18, , 12F
08/01 00:18, 12F
→
08/01 00:19, , 13F
08/01 00:19, 13F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章