private void OnReceiveComplete(object sender, SocketAsyncEventArgs args) { // 비동기 완료 및 재진입 처리 if (args.SocketError != SocketError.Success) { HandleSocketError(args.SocketError); return; } var len = args.BytesTransferred; if (len == 0) { HandleSocketError(SocketError.Shutdown); return; } // Deserialize packet if (_receiveLargeBuffer == null) { if (TryDeserializeNormalPacket(len) == false) { return; } } else { if (TryDeserializeLargePacket(len) == false) { return; } } if (_issueCountFlag.Decrement()) { ProcessClose(); return; } IssueReceive(); }