void socket_ReciveByteIntterupt(System.Net.Sockets.Socket socket, byte[] data) { Task.Factory.StartNew(() => { switch (_msgType) { case MessageType.Iso8583: MessageParser.NET.Tools.ISO8583 iso = new MessageParser.NET.Tools.ISO8583(); string[] iso8583 = iso.Parse(Encoding.Unicode.GetString(data)); if (RecivedIso != null) RecivedIso(iso8583); break; case MessageType.Xml: string xmlData = Encoding.Unicode.GetString(data); if (RecivedXml != null) RecivedXml(xmlData); break; case MessageType.Excel: MessageParser.NET.Tools.ExcelParser excel = new MessageParser.NET.Tools.ExcelParser(data); if (RecivedExcel != null) RecivedExcel(excel); break; } }); }
public void Send(string[] iso8583, string mti,bool firstLenght=false) { MessageParser.NET.Tools.ISO8583 iso = new MessageParser.NET.Tools.ISO8583(); Destination.Connect(destinationEndPoint.Address, destinationEndPoint.Port); Destination.Send(Encoding.Unicode.GetBytes(iso.Build(iso8583, mti)), firstLenght); }
/// <summary> /// generate iso8583 message and send it to to specified host /// </summary> /// <param name="ipAddress">Host IPAddress</param> /// <param name="port">Host Port</param> public void SendIso8583(string ipAddress, int port,bool firstLenght= false) { MessageParser.NET.Tools.ISO8583 iso = new MessageParser.NET.Tools.ISO8583(); Random rand = new Random(); string[] DE = new string[130]; DE[2] = (rand.Next(0, 9999).ToString() + rand.Next(0, 9999).ToString() + rand.Next(0, 9999).ToString() + rand.Next(0, 99999).ToString()).PadLeft(17, '0'); DE[3] = (rand.Next(0, 999999).ToString()).PadLeft(6, '0'); DE[4] = (rand.Next(0, 99999).ToString()).PadLeft(5, '0'); DE[7] = (DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0') + DateTime.Now.Hour.ToString().PadLeft(2, '0') + DateTime.Now.Minute.ToString().PadLeft(2, '0') + DateTime.Now.Second.ToString().PadLeft(2, '0')); DE[11] = (rand.Next(0, 999).ToString()).PadLeft(3, '0'); DE[22] = (rand.Next(0, 99999999).ToString()).PadLeft(8, '0'); DE[41] = (rand.Next(0, 99).ToString()).PadLeft(2, '0'); string data = iso.Build(DE, "0200"); APSocket.Net.Client client = new APSocket.Net.Client(); client.Connect(System.Net.IPAddress.Parse(ipAddress), port); client.SendAsync(Encoding.Unicode.GetBytes(data), firstLenght); }