_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); }
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; } }