public void OnRecv() { PacketHeader header; for ( ; ;) { if (2 != recvBuffer.Peek(out header, 2)) { break; } if (header.size > recvBuffer.Size) { break; } // 범위 체크.. Debug.Log($"{header.type} : {(int)header.type}, packet size : { header.size} "); handler[header.type](header, this.recvBuffer, this); //recveBuffer.MoveReadHead(header.size); } recvBuffer.Rewind(); }
public void SendPayload() { if (sendBuffer.Empty) // 보낼것 없으면... { return; } //Social, if (true == socket.Poll(0, SelectMode.SelectWrite)) // 데이터를 읽을 수 있다면 ... { int sentBytes = socket.Send(sendBuffer.GetBuffer(), sendBuffer.ReadHead, sendBuffer.Size, SocketFlags.None); sendBuffer.MoveReadHead(sentBytes); sendBuffer.Rewind(); Debug.Log($" send : { sentBytes}"); } }