在《unix網路程式設計》中,介紹了select模型可用於將多個阻塞的fd統一進行阻塞,其具體操作,以recv的操作為例總結如下:
fd_set readset; //fd的集合
fd_zero(&readset); //初始化
while(1)
}int ret=select(0,&readset,null,null,null);
/*有乙個或多個fd接收到了資料,假設是n個,
*這時readset已經發生了變化,僅剩n個fd在集合中
*/for(i=0; iif(fd_isset(pm->confd[i],&readset))
/*判斷有哪n個fd在集合中,這n個fd接收到了資料*/}}
//迴圈,繼續監聽各個accept之後得到的fd
}
總結關鍵步驟:
fd_set(pm->confd[i],&readset);//監聽所有感興趣的連線。
int ret=select(0,&readset,null,null,null);//有n個接受到資料,readset僅剩這n個fd。
fd_isset(pm->confd[i],&readset);//得到這n個連線,並進行recv。
軟體過程及各個模型的總結
1.瀑布模型 瀑布模型的做法很形象,軟體開發過程像瀑布一樣,一層接著一層,完成上層步驟之後,接著開展下一項。前一階段會形成乙個文件,後一階段根據這個文件進行操作。具體的步驟為 只是描述各個模型軟體開發的過程,是精簡版,不看也可 優點 在軟體開發中,由於技術人員沒有深入分析專案需求,而匆忙開發,很容易...
jQuery對select操作總結
取得下拉列表的選取值 testselect option selected text 或 testselect find option selected text 或 testselect val 記性不好的可以收藏下 1,下拉框 稍微解釋一下 1.select name country optio...
jQuery對select操作總結
遍歷option和新增 移除option function changeshipmethod shipping else 取得下拉列表的選取值 testselect option selected text 或 testselect find option selected text 或 tests...