المشاركات : 34
المواضيع 5
:
: 0
الإنتساب : Aug 2011
السلام عليكم ورحمة الله تعالى وبركاته
سوال بخصوص socket عندما اقوم ببرمجة عميل وخادم .
عندما ادخل الايبي الافتراضي 127.0.0.1 فان الاتصال يتم وعندما ادخل الايبي المحلي 192.168.1.50 الاتصال يتم ايضا ولكن عندما ادخل الايبي الحقيقي في الانترنت 41.101.51.11 متلا فان الاتصال لا يتم مع العلم ان التطبيق يكون على جهازي
المشاركات : 3,699
المواضيع 101
:
: 578
الإنتساب : Feb 2008
وعليكم السلام ورحمة الله
عليك بالاطلاع ومراجعة بعض الشيئ عن الشبكات وكيف تعمل
41.101.51.11 ليس IP جهازك وانما جهاز أخر يمر اتصالك عبره
راجع
http://www.delphi4arab.net/forum/showpos...stcount=29
المشاركات : 34
المواضيع 5
:
: 0
الإنتساب : Aug 2011
شكرا اخي ولكن هل هده المشكلة خاصة بفوري فقط ام جميع انواع الشبكات
وكيف ادرج النوايبي في البرمجة يعني انا عندي نو ايبي فكيف اجعل البرنامج يتعامل معه
المشاركات : 3,699
المواضيع 101
:
: 578
الإنتساب : Feb 2008
الأمر متعلق بنوع اشتراك الاتصال بغض النظر عن مزود خدمة الانترنت fawri (ذكرته كمثال) أو غيره
هناك اشتراك يوفر لك ip ثابت بثمن مرتفع عن اتصالك الحالي. راجع الوكالة التجارية لمزود الانرنت لديك
بالنسبة لخدمة no-ip ومثيلاتها راجع موقعها فهو يزودك بكل ما تحتاج من معلومات
المشاركات : 51
المواضيع 13
:
: 0
الإنتساب : Dec 2010
السلام عليكم أنصحك باستعمال برنامج no-ip فهو يسهل ك عملية الاتصال بأيبي الانترنت
تحياتي لك
المشاركات : 40
المواضيع 17
:
: 0
الإنتساب : Aug 2009
27-08-2011, 01:31 AM
(آخر تعديل لهذه المشاركة: 27-08-2011, 01:35 AM بواسطة achi.)
السلام عليكم اسطيع مد يد العون فما ذا تريد بالضبط
و سا قوم بعمل البرنامج مع الشرح مع العلم للاتصال يجب ان تجرب على جهازين مثال انت 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...لقد تعبت كثيرا لفهم ذلك ولقد ساعدني صديق من استراليا كثيرا ولن ابخل احد في العلم لفعل الخير و التبصر
و شكرا عذرا على التعبير التعبير اللغوي السئ فانا افضل الانجليزية في الشرح وانت تعلم هذا ممنوع في النتدى و انا احترم القوانين
المشاركات : 34
المواضيع 5
:
: 0
الإنتساب : Aug 2011
b.m.abdelaziz كتب :بالنسبة لخدمة no-ip ومثيلاتها راجع موقعها فهو يزودك بكل ما تحتاج من معلومات
شكا اخي الكريم
في الحقيقة انا استعمل النو ايبي ولكن استفسار عن كيفية جعل البرنامج يتاقلم معه هل سيعتبره متل الايبي ام يجب ادخال كود خاص له
damax2010 كتب :برنامج no-ip فهو يسهل ك عملية الاتصال بأيبي الانترنت
تحياتي لك
تحياتي لك اخي الكريم انا فعلا استعمل النو ايبي ولكن السوال عن كيفية جعل الدلفي يفهم النو ايبي فانا لما جربت النو ايبي لم يحدت اتصال في جهازي مع العلم ان السرفر والكليون كلهم على جهازي
achi كتب :
او تقوم بالحصول على ip ثابت من عدة مواقع اشهرها no-ip.org
جزاك الله خيرا على هده المعلومات القيمة
المشاركات : 145
المواضيع 5
:
: 7
الإنتساب : Feb 2010
السلام عليكم ورحمة الله وبركاته
تحية طيبة وبعد
لجعل تطبيقك يتاقلم مع ال no.ip كل ما عليك هو تحويل ال host الى ip Address داخل تطبيقك
كيف يتم هذا؟؟
عن طريق الوحدة 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' هذا طبعا على سبيل المثال
المشاركات : 13
المواضيع 0
:
: 0
الإنتساب : May 2011
justnick كتب :السلام عليكم ورحمة الله وبركاته
تحية طيبة وبعد
لجعل تطبيقك يتاقلم مع ال no.ip كل ما عليك هو تحويل ال host الى ip Address داخل تطبيقك
كيف يتم هذا؟؟
عن طريق الوحدة winsock
السلام عليكم
لست بحاجة للنزول الى مستوى WinSock
بدل
ClientSocket.Address استخدم ClienSocket.Host
عن طريق مكونات clientsocket
المشاركات : 145
المواضيع 5
:
: 7
الإنتساب : Feb 2010