تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] لدي مشلكة في برنامج Ping باستخدم Icmp
#1
السلام عليكم
لدي مشلكة في تنفيد وجرب اكثر بي كود في بعض يشتغل ولكن الاغلب نفس الخطا   اضنها مشكلة بي اعدادة فيجول استديو او شيء ما  ويعطي  الخطاء في هذا السطر
كود :
Socket host = new Socket(AddressFamily.InterNetwork, SocketType.Raw
           ;(ProtocolType.Icmp,
اعتقد المشكلة في raw socket جرب كم من الحلول لكن لم اجد الحل وهذا كود البرنامج كامل
كود :
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class ICMP
{
public byte Type;
public byte Code;
public UInt16 Checksum;
public int MessageSize;
public byte[] Message = new byte[1024];
public ICMP()
{
}
public ICMP(byte[] data, int size)
{
Type = data[20];
Code = data[21];
Checksum = BitConverter.ToUInt16(data, 22);
MessageSize = size - 24;
Buffer.BlockCopy(data, 24, Message, 0, MessageSize);
}
public byte[] getBytes()
{
byte[] data = new byte[MessageSize + 9];
Buffer.BlockCopy(BitConverter.GetBytes(Type), 0, data, 0, 1);
Buffer.BlockCopy(BitConverter.GetBytes(Code), 0, data, 1, 1);
Buffer.BlockCopy(BitConverter.GetBytes(Checksum), 0, data, 2, 2);
Buffer.BlockCopy(Message, 0, data, 4, MessageSize);
return data;
}
public UInt16 getChecksum()
{
UInt32 chcksm = 0;
byte[] data = getBytes();
int packetsize = MessageSize + 8;
int index = 0;
while ( index < packetsize)
{
   chcksm += Convert.ToUInt32(BitConverter.ToUInt16(data, index));
index += 2;
}
chcksm = (chcksm >> 16) + (chcksm & 0xffff);
chcksm += (chcksm >> 16);
return (UInt16)(~chcksm);
}
 
class SimplePing
{
public static void Main (string[] argv)
{
byte[] data = new byte[1024];
int recv;
Socket host = new Socket(AddressFamily.InterNetwork, SocketType.Raw,
ProtocolType.Icmp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(argv[0]), 0);
EndPoint ep = (EndPoint)iep;
ICMP packet = new ICMP();
packet.Type = 0x08;
packet.Code = 0x00;
packet.Checksum = 0;
Buffer.BlockCopy(
BitConverter.GetBytes((short)1), 0, packet.Message, 0, 2);
Buffer.BlockCopy(
BitConverter.GetBytes((short)1), 0, packet.Message, 2, 2);
data = Encoding.ASCII.GetBytes("test packet");
Buffer.BlockCopy(data, 0, packet.Message, 4, data.Length);
packet.MessageSize = data.Length + 4;
int packetsize = packet.MessageSize + 4;
UInt16 chcksum = packet.getChecksum();
packet.Checksum = chcksum;
host.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.ReceiveTimeout, 3000);
host.SendTo(packet.getBytes(), packetsize, SocketFlags.None, iep);
   try
{
data = new byte[1024];
recv = host.ReceiveFrom(data, ref ep);
} catch (SocketException)
{
Console.WriteLine("No response from remote host");
return;
}
ICMP response = new ICMP(data, recv);
Console.WriteLine("response from: {0}", ep.ToString());
Console.WriteLine(" Type {0}", response.Type);
Console.WriteLine(" Code: {0}", response.Code);
int Identifier = BitConverter.ToInt16(response.Message, 0);
int Sequence = BitConverter.ToInt16(response.Message, 2);
Console.WriteLine(" Identifier: {0}", Identifier);
Console.WriteLine(" Sequence: {0}", Sequence);
string stringData = Encoding.ASCII.GetString(response.Message,
4, response.MessageSize - 4);
Console.WriteLine(" data: {0}", stringData);
host.Close();
}
}
}

وهذا صورة الخطأ[صورة مرفقة: 150376685025771.png]
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
لدي مشلكة في برنامج Ping باستخدم Icmp - بواسطة shakone - 26-08-17, 09:10 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [كورس] استفسار عن برنامج مطاعم remonmary 2 1,998 25-08-24, 08:06 PM
آخر رد: ba2e44ca9a
  [C#.NET] مشكل يخص قراءة التقارير في برنامج aziz-ouali 0 563 08-12-23, 06:25 AM
آخر رد: aziz-ouali
  مشكلة في نشر برنامج يعتمد على ملف txt osama623 2 1,016 17-11-22, 08:53 PM
آخر رد: osama623
  مشكلة في نشر برنامج يعتمد على الـ Selenium osama623 0 750 21-09-22, 11:26 PM
آخر رد: osama623
  مساعدة في برنامج سكنر عدنان الشمري 4 3,668 18-02-22, 03:40 AM
آخر رد: adminh1
  [C#.NET] برنامج احتساب سرعة الكتابة على الكيبورد aboghanema 10 2,712 02-10-21, 05:25 PM
آخر رد: aboghanema
  [سؤال] كيف يمكنني استعادة فتح form في برنامج microsoft visual studio aabir 2 2,247 22-09-21, 12:05 PM
آخر رد: aabir
  تشغيل برنامج ببرنامج اخر anes 10 5,256 24-08-21, 11:54 AM
آخر رد: Miloud
  طلب برنامج Code Builder v4.2 maxruined 0 1,627 27-07-21, 11:33 AM
آخر رد: maxruined
  ما هي الطريقة التي تربط أجهزة متعددة Desktop او صفحة انترنت لعمل برنامج تفاعلي ؟ خليل إبراهيم 0 1,491 16-07-21, 11:49 PM
آخر رد: خليل إبراهيم

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم