public void WriteHexString(string hexString) { this.WriteBytes(HexEncoding.GetBytes(hexString)); }
/// <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)); }
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); } }