正确的 send recv 行为
生活随笔
收集整理的這篇文章主要介紹了
正确的 send recv 行为
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在實現(xiàn)socket類時,
1) 最好把設(shè)置block, nonblock等函數(shù)作為內(nèi)部接口, 不向外開放
2) 當(dāng)指定發(fā)送/接受時間時, 正確/典型的編碼過程是:
?
? a) 確保設(shè)置為nonblock模式
? b) 異步發(fā)送;當(dāng)未發(fā)送完全是循環(huán)發(fā)送;當(dāng)發(fā)送出錯(EWOULDBLOCK, ENOBUF)時, select注冊FD_WRITE事件, select返回時判斷返回值確定是否可發(fā)送或者已經(jīng)出錯或者超時
? c) 發(fā)送結(jié)束時, 恢復(fù)nonblock之前的狀態(tài)
?
?
接受也是如此操作。
?
?
對于另外兩種錯誤, 似乎也需要做如上處理: EINTR, EAGAIN
?
3) socket只向外提供發(fā)送接受操作的接口
?
------------------------------------------done-----------------------------------------------------------
總結(jié)
以上是生活随笔為你收集整理的正确的 send recv 行为的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bogofilter notes
- 下一篇: clustering