بخصوص برمجة عميل وخادم
#1
السلام عليكم ورحمة الله تعالى وبركاته
سوال بخصوص socket عندما اقوم ببرمجة عميل وخادم .
عندما ادخل الايبي الافتراضي 127.0.0.1 فان الاتصال يتم وعندما ادخل الايبي المحلي 192.168.1.50 الاتصال يتم ايضا ولكن عندما ادخل الايبي الحقيقي في الانترنت 41.101.51.11 متلا فان الاتصال لا يتم مع العلم ان التطبيق يكون على جهازي
الرد
#2
وعليكم السلام ورحمة الله

عليك بالاطلاع ومراجعة بعض الشيئ عن الشبكات وكيف تعمل
41.101.51.11 ليس IP جهازك وانما جهاز أخر يمر اتصالك عبره
راجع
http://www.delphi4arab.net/forum/showpos...stcount=29
الرد
#3
شكرا اخي ولكن هل هده المشكلة خاصة بفوري فقط ام جميع انواع الشبكات
وكيف ادرج النوايبي في البرمجة يعني انا عندي نو ايبي فكيف اجعل البرنامج يتعامل معه
الرد
#4

الأمر متعلق بنوع اشتراك الاتصال بغض النظر عن مزود خدمة الانترنت fawri (ذكرته كمثال) أو غيره
هناك اشتراك يوفر لك ip ثابت بثمن مرتفع عن اتصالك الحالي. راجع الوكالة التجارية لمزود الانرنت لديك
بالنسبة لخدمة no-ip ومثيلاتها راجع موقعها فهو يزودك بكل ما تحتاج من معلومات
الرد
#5
السلام عليكم أنصحك باستعمال برنامج no-ip فهو يسهل ك عملية الاتصال بأيبي الانترنت

تحياتي لك
الرد
#6

السلام عليكم اسطيع مد يد العون فما ذا تريد بالضبط
و سا قوم بعمل البرنامج مع الشرح مع العلم للاتصال يجب ان تجرب على جهازين مثال انت Client و الجهاز الاخر Server سهل جدا
اما اذ اردت ان تكون Server الاخر ِClient اي بمعنى اخر reverse connection يجب ان تكون لك ip ثابت
او تقوم بالحصول على ip ثابت من عدة مواقع اشهرها no-ip.org
اما عن سؤالك انت تجرب ب127.0.0.1 Localhost كل شئ يكو ن تمام وعندما
تقوم بادخال ip الذي تز دوك به الشركة يضهر خطا هذا صحيح
يجب ان تجرب على جهازين مختلفين اذا كنت server والاخر client يجب ان يضع هو
ip الخا صة بك لكي يتم الاتصال والعكس صحيح هذا اذا كان Modem ليس ٌrouter
و اذا كان مودموهrouter يجب reverse connection...لقد تعبت كثيرا لفهم ذلك ولقد ساعدني صديق من استراليا كثيرا ولن ابخل احد في العلم لفعل الخير و التبصر
و شكرا عذرا على التعبير التعبير اللغوي السئ فانا افضل الانجليزية في الشرح وانت تعلم هذا ممنوع في النتدى و انا احترم القوانين
الرد
#7
b.m.abdelaziz كتب :بالنسبة لخدمة no-ip ومثيلاتها راجع موقعها فهو يزودك بكل ما تحتاج من معلومات
شكا اخي الكريم
في الحقيقة انا استعمل النو ايبي ولكن استفسار عن كيفية جعل البرنامج يتاقلم معه هل سيعتبره متل الايبي ام يجب ادخال كود خاص له
damax2010 كتب :برنامج no-ip فهو يسهل ك عملية الاتصال بأيبي الانترنت
تحياتي لك
تحياتي لك اخي الكريم انا فعلا استعمل النو ايبي ولكن السوال عن كيفية جعل الدلفي يفهم النو ايبي فانا لما جربت النو ايبي لم يحدت اتصال في جهازي مع العلم ان السرفر والكليون كلهم على جهازي
achi كتب :
او تقوم بالحصول على ip ثابت من عدة مواقع اشهرها no-ip.org
جزاك الله خيرا على هده المعلومات القيمة
الرد
#8
السلام عليكم ورحمة الله وبركاته
تحية طيبة وبعد
لجعل تطبيقك يتاقلم مع ال no.ip كل ما عليك هو تحويل ال host الى ip Address داخل تطبيقك

كيف يتم هذا؟؟

عن طريق الوحدة winsock
كود :
uses winsock;

يوجد بها Function تقوم بتحويل اسم الhost الى ip Address وهى GetHostByName

كيف الاستخدام ؟؟

نقوم بانشاء Function كالاتى:
كود :
function GetHostByNameDelphi4Arab(hostname: string): string;
//هذا المثال من كتاب The Tomes of Delphi Basic 32-bit Communications Programming
var
WSAData : TWSAData;
Hostent : PHostent;
ipaddress : String;
h_addr : PChar;
begin
if WSAStartUp($101, WSAData) = 0 then
try
   if inet_addr(PChar(HostName)) = INADDR_NONE then
begin
Hostent := gethostbyname(PChar(HostName));
if Hostent <> NIL then
begin
Move(Hostent^.h_addr_list^, h_addr, SizeOf(Hostent^.h_addr_list^));
ipaddress:=Format('%d.%d.%d.%d',[byte(h_addr[0]),byte(h_addr[1]),byte(h_addr[2]),byte(h_addr[3])]);
end;
    end;
finally
  WSACleanUp;
end;
  Result:=ipaddress;
end;
لاستدعاء ال function كمثال فقط :-

كود :
ShowMessage(GetHostByNameDelphi4Arab('delphi4arab.net'));

استبدلdelphi4arab.net باسم الهوست الذى تريد 'delphi4arab.no.ip' هذا طبعا على سبيل المثال
الرد
#9
justnick كتب :السلام عليكم ورحمة الله وبركاته
تحية طيبة وبعد
لجعل تطبيقك يتاقلم مع ال no.ip كل ما عليك هو تحويل ال host الى ip Address داخل تطبيقك

كيف يتم هذا؟؟

عن طريق الوحدة winsock

السلام عليكم

لست بحاجة للنزول الى مستوى WinSock

بدل
ClientSocket.Address استخدم ClienSocket.Host
عن طريق مكونات clientsocket
الرد
#10
فى انتظار النتيجة
الرد


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


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