الاخير زمانه

ماهو افضل سيناريو لأرسال string من حاسبة الى اخرى عبر الانترنيت

13 ردود في هذا الموضوع

السلام عليكم

اريد كتابة برنامج لأرسال رسالة من حاسبة الى حاسبة اخرى عبر النت.

يعني سيكون لدي برنامجين - سيرفر لارسال الرسالة - وكلاينت لاستلام الرسالة.

كيفية تطبيق ذلك؟

انا لدي وصول كامل للجهازين - يعني ممكن افتح port معين او تغيير الاعدادات كما مطلوب.

لكن ايضا ال IP لدي هو dynamic وبالتالي انا لا اعرف ال IP بالضبط لكي اقوم بالاتصال.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

عموما يفضل فى هذه الحالات دائما ان تكون الIP من نوع Static.

لكن يمكن فى حالة الdynamic الاعتماد على الhost name.

يمعنى ان المستخدم سوف يقوم بادخال اسم السرفر و ليس IP الخاص به.

و فى برنامجك تقوم بتحويل الاسم الى رقم IP.

يمكن فعل ذلك عبر الدالة gethostbyname و هى دالة خاصة بمكتبة الWinSock.

هذا الكود بالسى++ يوضح مثالا عن ذلك, و أعتقد يمكنك تحويله الى اللغة التى تعمل بها.


WSADATA wsa_data;
WORD ver;

if(WSAStartup(MAKEWORD(2,2),&wsa_data)!=0)
MessageBox(this->Handle,"Can't resolve host name.\nCheck the connection.","TEST",MB_ICONINFORMATION);

hostent *host;

if((host=gethostbyname(server_name)==NULL)
{
MessageBox(this->Handle,"Can't resolve host name.\nCheck the connection.","EKD Integration Tool",MB_ICONINFORMATION);

WSACleanup();
return;

}

SOCKADDR_IN SockAddr;
SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);

server_ip=inet_ntoa(SockAddr.sin_addr);
WSACleanup();

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا اخي على الرد - سأجرب الطريقة ان شاء الله.

لكن هل الامر بهذه السهولة. ظننت ان وجود ال NAT سيعقد الامر!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بالنسبة لمشكلة الاتصال بـ dynamic IP، يمكنك اعتماد أي خدمة مجانية أو مدفوعة

مثل no-ip.org / dyndns.org

أو ربما يقوم السيرفر بتشارك عنوانه مع البقية من خلال نشره في مكان ما.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جميل جدا - حتى لو اضطررت الى ان اشترك او ادفع - لا مشكلة ان شاء الله.

سأرى المواقع.

شكرا لك.

----

بعيدا عن الموضوع

Xacker

قلوبنا و دعائنا لكم يا أهلنا في سوريا.

كنت اتمنى لو ان مجتمع الفريق لازال مفتوح لكي نطمئن على اخوتنا هناك.

حماكم الله و حفظكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الله يسلمك يا طيب.

أود لفت انتباهك إلى أنه بوجود NAT فستحتاج لإعداد الراوتر في طرف السيرفر لكي يقوم بإجراء forwarding للاتصالات الواردة على منفذ X إلى جهاز داخل الشبكة عبر المنفذ X أو Y أو ... أي منفذ تريد، والذي سيكون برنامجك ينتظر الاتصالات عبره.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

استخدم الـ WCF أو WebService أفضل.<br>

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا اخي -

رغم اني لا اعرف الكثير عن ال WCF لكني اظن اني لا استطيع استخدامها - في المشكلة التي لدي - لان الجهاز المرسل للرسالة هو جهاز اندرويد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

قم بكتابة WCF أو WebService فيها وظيفه للارسال ووظيفه للاستقبال, حينها يمكنك كتابة implementation بأي لغه على أي platform وستتمكن من نقل التطبيق على أي device تريد ;)

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك اخي الكريم.

اتمنى لو بأستطاعتك ان توضح ي الامر بصورة اكثر - جزاك الله خيرا.

ضعني - ان امكنك - على اول الطريق - لكي اعرف اين و عن ماذا ابحث بالضبط.

مع الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

سامحني فليس لدي وقت فراغ للأسف ولكن الأمر قد يتطلب منك وجود قاعدة بيانات, المهم جوجل عن إرسال واستقبال بيانات باستخدام ويب سيرفس وكن صبورا فالموضوع شيق ويستحق العناء :)

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

عادي اخي - و شكرا جزيلا - كلامك شجعني للبدء في القراءة بهذا المجال

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .