예제 #1
0
    _chatting_packet fromBytes(byte[] arr)
    {
        _chatting_packet str = new _chatting_packet();

        int    size = Marshal.SizeOf(recvPacket);
        IntPtr ptr  = Marshal.AllocHGlobal(size);

        Marshal.Copy(arr, 0, ptr, size);

        str = (_chatting_packet)Marshal.PtrToStructure(ptr, str.GetType());
        Marshal.FreeHGlobal(ptr);

        return(str);
    }
예제 #2
0
    void ReadThread()
    {
        while (true)
        {
            // Receive
            socket.Receive(Receivebyte);
            //Buffer.BlockCopy(Receivebyte, 0, (Array)recvPacket, 0, Receivebyte.Length);
            //Marshal.Copy(Receivebyte, 0, recvPacket, Receivebyte.Length);
            recvPacket = fromBytes(Receivebyte);

            Debug.Log("GET MESSAGE = " + recvPacket);
            //recvPacket = (_chatting_packet)&Receivebyte;
            //ReceiveString = Encoding.Default.GetString(Receivebyte);
            //ReceivedataLength = Encoding.Default.GetByteCount(ReceiveString.ToString());
            //ServerData.strReceiveChatting = string.Format("{0}{1}{2}", ServerData.strReceiveChatting, ReceiveString, '\n');

            //socket.Receive(Receivebyte);
            //ReceiveString = Encoding.Default.GetString(Receivebyte);
            //recvPacket = (_chatting_packet)ReceiveString;
        }
    }