Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
    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}");
        }
    }