private void TestPacket() { PacketUserInfo sendPacket = new PacketUserInfo((int)PacketType.USER_INFO); sendPacket.InitPacketUserInfo(); Debug.Log(sendPacket.ToString()); byte[] buff = sendPacket.ToBytes(); PacketUserInfo receivePacket = new PacketUserInfo((int)PacketType.USER_INFO); receivePacket.ToType(buff); Debug.Log(receivePacket.ToString()); }
private void ProcessStreamByte() { if (_byteList.Count < 2) // 패킷사이즈도 알아 낼수 없는 경우 { return; } if (_packetSize == 0) { byte[] sizeByte = new byte[2]; sizeByte[0] = _byteList[0]; sizeByte[1] = _byteList[1]; _packetSize = Util.ByteArrToShort(sizeByte, 0); } if (_byteList.Count < _packetSize) // 필요한 만큼 다 못 받은 경우 { return; } else { byte[] packetByte = new byte[_packetSize]; for (int i = 0; i < _packetSize; i++) { packetByte[i] = _byteList[i]; } _byteList.RemoveRange(0, _packetSize); int packetType = Util.ByteArrToInt(packetByte, 2); if (packetType == (int)PacketType.USER_INFO) { PacketUserInfo userInfo = new PacketUserInfo(packetType); userInfo.ToType(packetByte); _packetQueue.Enqueue(userInfo); } else if (packetType == (int)PacketType.ROUND_INFO) { PacketRoundInfo roundInfo = new PacketRoundInfo(packetType); roundInfo.ToType(packetByte); _packetQueue.Enqueue(roundInfo); } _packetSize = 0; } ProcessPacket(); }