تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اتصال UDP بين جهازين
#1
السلام عليكم

انا بشتغل على مثال  للاتصال بين جهازين عن طريق UPD والكود شغال على 172.0.0.1  local

اما لما جبت الاى بى الخاص بجهازى اجربه عن طريق الموقع ده /http://icanhazip.com
وكتبته بالكود للاتصال فشل فى تشغيل السيرفر
ووضعت للبورت 0  او 3000 وارقام تانية ومااشتغلش بيظهر الرسالة دى




ده الكود  فى حدث اللود فروم 
كود :
try
   {
       CheckForIllegalCrossThreadCalls = false;

       //We are using UDP sockets
       serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);


       //Assign the any IP of the machine and listen on port number 1000
       IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("156.199.70.200"), 0);

       //Bind this address to the server
       serverSocket.Bind(ipEndPoint);

       IPEndPoint ipeSender = new IPEndPoint(IPAddress.Parse("156.199.70.200"), 0);
       //The epSender identifies the incoming clients
       EndPoint epSender = (EndPoint)ipeSender;

       //Start receiving data
       serverSocket.BeginReceiveFrom(byteData, 0, byteData.Length,
           SocketFlags.None, ref epSender, new AsyncCallback(OnReceive), epSender);
   }
   catch (Exception ex)
   {
       MessageBox.Show(ex.Message, "msg", MessageBoxButtons.OK, MessageBoxIcon.Error);
   }

ياريت حل
الرد }}}
تم الشكر بواسطة:
#2
IP Address غير صحيح
لذا لا يمكن التنصت عليه

127.0.0.1 هو العنوان الداخلي للحاسب , لا يفيد كثيرا

يمكن الحصول على عناوين الحاسب عن طريق هذه الدالة
Dns.GetHostEntry(Dns.GetHostName).AddressList
الرد }}}
تم الشكر بواسطة: Abou Eman , amgad525
#3
(15-12-16, 01:07 PM)Fantastico كتب : IP Address غير صحيح
لذا لا يمكن التنصت عليه

127.0.0.1  هو العنوان الداخلي للحاسب , لا يفيد كثيرا

يمكن الحصول على عناوين الحاسب عن طريق هذه الدالة
Dns.GetHostEntry(Dns.GetHostName).AddressList

شكرا لردك اخى
انا بتصل بجازين ليسو فى شبكة واحدة
الكود يعمل جيدا لوكل على جهازى
اما لما بجيب الاى بى العالمى الخاص بجهازى عن طريق موقع http://icanhazip.com

وبضع الاى بى فى الكود كما رأيت فى مشاركتى الاولى لا يتصل السيرفر اصلا بالكود
اتمنى ان اكون وضحت مشكلتى
الرد }}}
تم الشكر بواسطة:
#4
لا أعرف الكثير عن الاتصال عبر الشبكة العالمية

لكن اقترح أن تتنصت على أي IP
PHP كود :
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any0);
 
    serverSocket.Bind(ipEndPoint); 

لأن العنوان العالمي غير موجود ضمن قائمة العناوين
ولا يظهر عند عمل Ping له
الرد }}}
تم الشكر بواسطة: amgad525
#5
Google Talk (GTalk) Autoreply using .NET




Google Chat Desktop Application using Jabber.Net
الرد }}}
تم الشكر بواسطة: Abou Eman , Abou Eman
#6
هل ال ريفرنس DLL ده ديمو استاذ امجد ؟
الرد }}}
تم الشكر بواسطة:
#7
يجب فتح البورت في السيرفر
الرد }}}
تم الشكر بواسطة: amgad525 , amgad525
#8
فتحت البورت على الراوتر ونفس المشكلة
الرد }}}
تم الشكر بواسطة:
#9
حدثت معي نفس المشكلة في السابق الاتصال بين الكلايننت و السيرفر يعمل بشكل جيد عند الاتصال الداخلي و لا يعمل عند الاتصال الخارجي 
و حليتها بتفعيل خاصية DMZ في الراوتر 
ندخل الى اعدادات الراوتر و نقوم بتفعيل  خاصية DMZ كما في الصورة 
 مع ضرورة كتابة الأيبي الداخلي للجهاز الذي فيه برنامج السيرفر  : 192.168.1.2 أو 192.168.1.3 أو ......


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: Abou Eman
#10
شكرا اخى ولكن لم تعمل
ياريت الاعدادات الى عملتها كلها على الراوتر لأنها غالبا المشكلة بها مش بالكودد

انا تعبت من امبارح بحث Sad Sad
الرد }}}
تم الشكر بواسطة:



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


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