private void OnRecvCompleted(object sender, SocketAsyncEventArgs args) { if (args.BytesTransferred > 0 && args.SocketError == SocketError.Success) { try { // Write 커서 이동 if (recvBuffer.OnWrite(args.BytesTransferred) == false) { Disconnect(); return; } // 컨텐츠 쪽으로 데이터를 넘겨주고 얼마나 처리했는지 받는다 int processLen = OnRecv(recvBuffer.ReadSegment); if (processLen < 0 || recvBuffer.DataSize < processLen) { Disconnect(); return; } // Read 커서 이동 if (recvBuffer.OnRead(processLen) == false) { Disconnect(); return; } RegisterRecv(); } catch (Exception e) { Debug.Log($"OnRecvCompleted Failed {e}"); } } else { Disconnect(); } }