Example #1
0
 public void WriteHexString(string hexString)
 {
     this.WriteBytes(HexEncoding.GetBytes(hexString));
 }
Example #2
0
 /// <summary>
 /// Writes a hex-string to the stream
 /// </summary>
 /// <param name="@string">The hex-string to write</param>
 public void WriteHexString(String pHexString)
 {
     WriteBytes(HexEncoding.GetBytes(pHexString));
 }
Example #3
0
        private void OnDataReceived(IAsyncResult pIAR)
        {
            SocketInfo socketInfo = (SocketInfo)pIAR.AsyncState;

            try {
                int received = socketInfo.Socket.EndReceive(pIAR);
                if (received == 0)
                {
                    if (OnClientDisconnected != null)
                    {
                        OnClientDisconnected(this);
                    }
                    return;
                }

                socketInfo.Index += received;


                byte[] dataa = new byte[received];
                Buffer.BlockCopy(socketInfo.DataBuffer, 0, dataa, 0, received);
                Console.WriteLine(BitConverter.ToString(dataa));
                Console.WriteLine(HexEncoding.ToStringFromAscii(dataa));
                WaitForData();

                /*if (socketInfo.Index == socketInfo.DataBuffer.Length) {
                 *  switch (socketInfo.State) {
                 *      case SocketInfo.StateEnum.Header:
                 *          PacketReader headerReader = new PacketReader(socketInfo.DataBuffer);
                 *          byte[] packetHeaderB = headerReader.ToArray();
                 *          int packetHeader = headerReader.ReadInt();
                 *          short packetLength = (short)MapleCrypto.getPacketLength(packetHeader);
                 *          if (!_RIV.checkPacket(packetHeader)) {
                 *              Console.WriteLine("[Error] Packet check failed. Disconnecting client.");
                 *              this.Socket.Close();
                 *              }
                 *          socketInfo.State = SocketInfo.StateEnum.Content;
                 *          socketInfo.DataBuffer = new byte[packetLength];
                 *          socketInfo.Index = 0;
                 *          WaitForData(socketInfo);
                 *          break;
                 *      case SocketInfo.StateEnum.Content:
                 *          byte[] data = socketInfo.DataBuffer;
                 *
                 *          _RIV.crypt(data);
                 *          MapleCustomEncryption.Decrypt(data);
                 *
                 *          if (data.Length != 0 && OnPacketReceived != null) {
                 *              OnPacketReceived(new PacketReader(data));
                 *              }
                 *          WaitForData();
                 *          break;
                 *      }
                 *  } else {
                 *  Console.WriteLine("[Warning] Not enough data");
                 *  WaitForData(socketInfo);
                 *  }*/
            } catch (ObjectDisposedException) {
                Console.WriteLine("[Error] Session.OnDataReceived: Socket has been closed");
            } catch (SocketException se) {
                if (se.ErrorCode != 10054)
                {
                    Console.WriteLine("[Error] Session.OnDataReceived: " + se);
                }
            } catch (Exception e) {
                Console.WriteLine("[Error] Session.OnDataReceived: " + e);
            }
        }