Jeremy 討厭
16 years ago
解一個問題超過一個禮拜,快爆炸了!
latest #12
Jeremy
16 years ago
線都斷了,sock_sendmsg為什麼老是回EAGAIN呢....
Jeremy
16 years ago
MSG_WAITALL,SO_RCVTIMEO=0,sock_recvmsg時斷線會block住
Jeremy
16 years ago
MSG_WAITALL, SO_RCVTIMEO!=0,sock_recvmsg時斷線,會等到timeout之後把收到多少data送回來,但從此以後receive buffer不會有東西再進來
立即下載
Jeremy
16 years ago
MSG_WAITALL,SO_SNDTIMEO=0,sock_sendmsg時斷線會回EAGAIN
Jeremy
16 years ago
recv跟send的行為不太一樣,好像不太合理....
Jeremy
16 years ago
因為thread被叫起來的條件是要sk_data_ready,純recv在線斷掉的時候永遠都起不來,但純send卻會一直被叫起來回EAGAIN
Jeremy
16 years ago
看來只能釜底抽薪,link down的時候掛timer去砍connection
Jeremy 好奇
16 years ago
setsockopt,SO_KEEPALIVE有用?
Jeremy
16 years ago
SO_KEEPALIVE,兩個鐘頭才check一次的話也沒什麼屁用。要改kernel的話還是link down的時候發event出來比較實際...
Jeremy
16 years ago
用一個thread處理多個connection,看來不是明智之舉....
shardad
16 years ago
Jeremy send $$$ and I recv. Please keep the connection alive.
Jeremy
16 years ago
只有一個connection的時候看來是沒問題了,但怎麼多一個就又crash呢....整個莫名奇妙啊 (angry)
back to top