Closed tomofuji-dev closed 1 year ago
shutdownの時の挙動がおかしい
解決したので書き残しておく
状況: ・EPOLLINの処理中にclientがshutdownした場合、recvは0を返す ・修正前の実装では、recvが0となった場合socketを閉じており、そのためclientのrecvが空文字列となっていた ・recv = 0 -> 相手がclose or shutdownのどちらの可能性もあるため、rdhup_を立てた上でepolloutでsocketを閉じる処理を行う
testに時間がかかる理由 ・test1 ~ 5はread_socket->closeの流れ(shutdownを行わない) ・server側はmessageを処理してepoll イベントを待ち続けるものの、clientがread_socketでblockingしているのでtime_outでcloseを送る ・client側はserverのclose()を持ってread_socketのループを終了し、closeする
Overview
EPOLLHUP, EPOLLRDHUPなどの挙動を確かめる
Purpose
Task