[問題] non-blocking socket問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
NO
問題(Question):
各位好
請問我的server程式需要頻繁的呼叫send函式把資料送出去
然後又是一個real-time的系統所以用blocking的socket的話
會慢慢累積delay 最後就是崩潰 資料全部過時
搜尋了一下 應該是要改用non-blocking的socket
於是我用
int flags= fcntl(forwardSockfd, F_GETFL, 0);
fcntl(forwardSockfd, F_SETFL, flags | O_NONBLOCK);
這種方式將socket改成non-blocking
請問這樣做的話 我還需要檢查send的return值嗎
目前遇到的問題可能會有:
1. client斷線 造成呼叫send的時候剛好broken pipe
2. client跳電 造成buffer full 要等兩小時後才會time out結束連線
如果我用non-blocking的話 以上兩種問題該如何得知呢
因為blocking socket的時候 還可以看回傳值
測試用non-blocking socket後 回傳值常會變成-1
然後errno是EAGAIN 但是不是很懂意思
所以我是否可直接跳過return值?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.7.57
→
01/09 11:36, , 1F
01/09 11:36, 1F
→
01/09 11:37, , 2F
01/09 11:37, 2F
→
01/09 11:37, , 3F
01/09 11:37, 3F
→
01/09 11:38, , 4F
01/09 11:38, 4F
→
01/09 12:01, , 5F
01/09 12:01, 5F
→
01/09 12:02, , 6F
01/09 12:02, 6F
→
01/09 12:02, , 7F
01/09 12:02, 7F
推
01/09 14:23, , 8F
01/09 14:23, 8F
→
01/09 14:24, , 9F
01/09 14:24, 9F
→
01/09 14:24, , 10F
01/09 14:24, 10F
→
01/09 16:23, , 11F
01/09 16:23, 11F
→
01/09 16:24, , 12F
01/09 16:24, 12F
→
01/09 16:24, , 13F
01/09 16:24, 13F
→
01/09 16:31, , 14F
01/09 16:31, 14F
→
01/09 16:32, , 15F
01/09 16:32, 15F
推
01/09 18:34, , 16F
01/09 18:34, 16F
→
01/09 18:37, , 17F
01/09 18:37, 17F
→
01/09 18:38, , 18F
01/09 18:38, 18F
→
01/09 18:42, , 19F
01/09 18:42, 19F
→
01/09 18:43, , 20F
01/09 18:43, 20F
→
01/09 19:19, , 21F
01/09 19:19, 21F
→
01/09 19:20, , 22F
01/09 19:20, 22F
→
01/09 19:20, , 23F
01/09 19:20, 23F
→
01/09 19:21, , 24F
01/09 19:21, 24F
→
01/09 19:22, , 25F
01/09 19:22, 25F
推
01/09 20:31, , 26F
01/09 20:31, 26F
推
01/09 20:39, , 27F
01/09 20:39, 27F
→
01/09 20:40, , 28F
01/09 20:40, 28F
推
01/09 23:26, , 29F
01/09 23:26, 29F
→
01/10 00:07, , 30F
01/10 00:07, 30F
→
01/10 00:08, , 31F
01/10 00:08, 31F
推
01/10 13:32, , 32F
01/10 13:32, 32F
→
01/10 17:00, , 33F
01/10 17:00, 33F
→
01/10 22:43, , 34F
01/10 22:43, 34F
→
01/10 22:43, , 35F
01/10 22:43, 35F
推
01/11 02:47, , 36F
01/11 02:47, 36F
→
01/11 02:48, , 37F
01/11 02:48, 37F
→
01/11 02:51, , 38F
01/11 02:51, 38F
→
01/11 02:54, , 39F
01/11 02:54, 39F
→
01/11 02:58, , 40F
01/11 02:58, 40F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):