الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه الاخير زمانه في 23 مايو 2012 · 12 رد · 1,521 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

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

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

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

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

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

عموما يفضل فى هذه الحالات دائما ان تكون ال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
#3

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

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

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#4

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

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

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

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

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

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

شكرا لك.

----

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

Xacker

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

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

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

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#6

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

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

1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9

شكرا اخي -

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

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#10

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

1
#11

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

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

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

مع الشكر

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#12

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

1
#13

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

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…