public IPv4Packet(IPv4Header header, byte[] payload) { Header = header; Payload = payload; Header.Length = Header.HeaderLength * 2 + Payload.Length / 2; }
public void IPEmptyPacketSendUnitTest() { Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name); UDPPacket udpPacket = new UDPPacket(4001, 4001, new byte[] { 0x1, 0x2, 0x3, 0x4 }); IPv4Header header = new IPv4Header(ProtocolType.Udp, 7890, IPAddress.Parse("194.213.29.54"), IPAddress.Parse("194.213.29.54")); byte[] headerData = header.GetBytes(); foreach (byte headerByte in headerData) { Console.Write("0x{0:x} ", headerByte); } Console.WriteLine(); Socket rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); //rawSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1); rawSocket.SendTo(headerData, new IPEndPoint(IPAddress.Parse("194.213.29.54"), 5060)); rawSocket.Shutdown(SocketShutdown.Both); rawSocket.Close(); Assert.IsTrue(true, "True was false."); }
public void IPHeaderConstructionUnitTest() { Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name); IPv4Header header = new IPv4Header(ProtocolType.Udp, 4567, IPAddress.Parse("194.213.29.54"), IPAddress.Parse("194.213.29.54")); byte[] headerData = header.GetBytes(); int count = 0; foreach (byte headerByte in headerData) { Console.Write("0x{0,-2:x} ", headerByte); count++; if (count % 4 == 0) { Console.Write("\n"); } } Console.WriteLine(); Assert.IsTrue(true, "True was false."); }
private void SendRTPPacket(string sourceSocket, string destinationSocket) { try { //logger.Debug("Attempting to send RTP packet from " + sourceSocket + " to " + destinationSocket + "."); Log("Attempting to send RTP packet from " + sourceSocket + " to " + destinationSocket + "."); IPEndPoint sourceEP = IPSocket.GetIPEndPoint(sourceSocket); IPEndPoint destEP = IPSocket.GetIPEndPoint(destinationSocket); RTPPacket rtpPacket = new RTPPacket(80); rtpPacket.Header.SequenceNumber = (UInt16)6500; rtpPacket.Header.Timestamp = 100000; UDPPacket udpPacket = new UDPPacket(sourceEP.Port, destEP.Port, rtpPacket.GetBytes()); IPv4Header ipHeader = new IPv4Header(ProtocolType.Udp, Crypto.GetRandomInt(6), sourceEP.Address, destEP.Address); IPv4Packet ipPacket = new IPv4Packet(ipHeader, udpPacket.GetBytes()); byte[] data = ipPacket.GetBytes(); Socket rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); rawSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1); rawSocket.SendTo(data, destEP); } catch (Exception excp) { logger.Error("Exception SendRTPPacket. " + excp.Message); } }