يجب أن يكون العديد من الأشخاص قد استخدموا OICQ، ويجب أن يكونوا قد استخدموا أيضًا الرسائل النصية لجهاز BP والرسائل النصية للهاتف المحمول. يجب أن يرغب أصدقاء البرمجة في تحقيق هذه الوظيفة.
سيكون أمرًا رائعًا أن يتم إرسال برنامجك إلى الهواتف المحمولة وأجهزة BP.
الآن سأقدم طريقة ممكنة.
1. المبدأ
وهي تختلف عن وظيفة الترحيل الخاصة بـ OICQ حيث يمكن لكلا الطرفين التواصل فقط عندما يكونان متصلين بالإنترنت. ويمكنهما إرسال رسائل نصية إلى أجهزة الاستدعاء الحقيقية. طالما أن لديك إمكانية الوصول إلى الإنترنت، يمكنك القيام بذلك بنفسك وإرسال المعلومات في أي وقت وفي أي مكان. حتى لو كنت في الخارج، يمكنك استخدامه لإرسال المعلومات إلى الأصدقاء في الصين، ولن يتعين عليك الدفع دوليًا لفترة طويلة رسوم المسافة أليست مريحة وخالية من المتاعب!
2. التحليل
في الوقت الحاضر، تحتوي كل محطة ترحيل على الإنترنت على خدمات عبر الإنترنت، وتعد صفحات الويب من أكثر الخدمات استخدامًا. ويتم ذلك عن طريق الوصول إلى الصفحة الرئيسية لمحطة الترحيل على الإنترنت، ثم الترحيل عن طريق نظام ترحيل المعلومات الخاص بمحطة الترحيل. لذلك نحتاج فقط إلى استخدام بروتوكول HTTP لتنفيذ ترحيل الشبكة. فيما يلي مقدمة مختصرة عن بروتوكول HTTP:
يتطلب إكمال الجلسة في HTTP عادةً ما يلي: 1) يقوم برنامج العميل بإنشاء اتصال مع الخادم 2) إرسال طلب 3) يستجيب الخادم للعميل 4) إغلاق الاتصال
طلبات HTTP شائعة الاستخدام هي: 1) GET (طلب صفحة ويب) 2) HEAD (قراءة رأس صفحة ويب) 3) PUT (طلب صفحة ويب مخزنة) 4) POST (إرفاق مورد مسمى) 5 )DELETE ( حذف شبكة الويب العالمية) 6) LINK (توصيل مصدرين موجودين) 7) UNLINK (قطع اتصال مصدرين موجودين)
رموز حالة الاستجابة شائعة الاستخدام في HTTP هي: (* يمثل رقمًا بين 0-9) 1.1** (معلومات) 2.2** (نجاح) 3.4** (خطأ العميل) 4.5**( خطأ في الخادم)
في الواقع، البرنامج الذي نريد تنفيذه يستخدم فقط طلبات POST وGET ويتلقى استجابات عادية. يمكن استخدام POST لتمرير البيانات المدخلة من قبل المستخدم إلى برنامج CGI في شكل دفق بيانات يستخدم CGI متغير البيئة Contact-Length للحصول على معلومات دفق البيانات ذات الطول المقابل.
تنسيق طلب POST هو كما يلي:
نشر http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0
قبول: صورة/gif، صورة/x-xbitmap، صورة/jpeg، صورة/pjpeg، application/vnd.ms-Powerpoint، application/vnd.ms-Excel، application/msWord، */*
المرجع: http://www2.scuta.edu.cn/stu/
قبول اللغة: zh-cn
نوع المحتوى: application/x-www-form-urlencoded
اتصال الوكيل: البقاء على قيد الحياة
وكيل المستخدم: Mozilla/4.0 (متوافق؛ MSIE 5.5؛ Windows 98)
المضيف: www2.scuta.edu.cn
طول المحتوى: 87
براغما: لا يوجد ذاكرة تخزين مؤقت
ملف تعريف الارتباط: ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK
هيكل رأس الاستجابة العادية للخادم هو:
يشير 200 OK HTTP/1.0 إلى نجاح إرسال البيانات
3. تنفيذ البرنامج
يمكن لـ NMHTTP في دلفي تنفيذ إرسال البيانات المذكورة أعلاه بسهولة، كما أنه يدعم Proxy، والذي ينطبق أيضًا على الوصول إلى الإنترنت من خلال خوادم الوكيل، وهو ليس وكيل SOCKET5 المستخدم لإرسال الرسائل في OICQ.
قم بإنشاء نموذج جديد وأضف مكون ComboBox ، يسمى Callto ، لتخزين كائنات الترحيل. 98003, 99062، 99016، 99017، 99018، 99019، 99046، 99076؛ أضف المكون تحرير وقم بتسميته برقم الترحيل، الذي يمثل رقم الترحيل، أضف مكون RadioGroup وقم بتسميته RadioGroup1، وقم بتعيين التسمية التوضيحية لنوع جهاز النداء، وأضف عنصرين إلى العناصر، كل منها في الجهاز الصيني، آلة رقمية؛ إضافة مكون تحرير، يسمى الاسم الأول، يستخدم للإشارة إلى الاسم الأخير للشخص الذي أرسل الصفحة؛ إضافة مكون RadioGroup، المسمى RadioGroup2، يتم تعيين التسمية التوضيحية على جنس جهاز النداء، وإضافة عنصرين إلى العناصر، وهما السيد. و Miss؛ يتم استخدام مذكرة المكون، المسماة callmsg، لإدخال المعلومات المرسلة ( ملحوظة: بالنسبة للأجهزة الرقمية، يمكن أن تكون معلومات رقمية فقط)؛ أضف مكون NMHTTP، المسمى NMHTTP1؛ منفذ الخادم الوكيل؛ أخيرًا أضف زر الأمر واضبط التسمية التوضيحية على "إرسال".
الآن خذ ترحيل Guosen كمثال، ويمكن تنفيذه باستخدام طلب GET، ويكون رمز البرنامج الخاص بالزر "إرسال" كما يلي:
الإجراء TForm1.Button1Click(Sender: TObject);
فار callstr:string;
ابدأ المكالمة:='http://tips.gxspace.com/cgi-bin/tips/webpaging?stn_id='+callto.Text+'&page_no='+tonumber.Text;
حالة RadioGroup1.ItemIndex
0:callstr:=callstr+'&pager_type=C';
1:callstr:=callstr+'&pager_type=N';
نهاية؛
callstr:=callstr+'&firstname='+firstname.text;
حالة RadioGroup2.ItemIndex
0:callstr:=callstr+'&title=0';
1:callstr:=callstr+'&title=1';
نهاية؛
callstr:=callstr+'&msg='+callmsg.Text+'&answer=null&B1=إرسال الترحيل';
NMHTTP1.InputFileMode := FALSE;
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
إذا ifuseproxy.Checked بعد ذلك
يبدأ
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
نهاية؛
NMHTTP1.Get(callstr);
نهاية؛
بعض الترحيل (مثل ترحيل Runxun لا يمكن تنفيذه باستخدام طلب GET أعلاه، فهو يتطلب طلب POST)، ولا يختلف الاستخدام كثيرًا عما سبق، على سبيل المثال، ما يلي هو استخدام POST لـ NMHTTP:
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True;
NMHTTP1.ReportLevel:=Status_Basic;
إذا ifuseproxy.Checked بعد ذلك
يبدأ
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
نهاية؛
مع NMHTTP1.HeaderInfo تفعل ذلك
يبدأ
ملف تعريف الارتباط := Edit5.Text;
LocalMailAddress := Edit6.Text;
LocalProgram := Edit7.Text;
المرجع := Edit8.Text;
معرف المستخدم := Edit9.Text;
كلمة المرور := Edit10.Text;
نهاية؛
// ضع البيانات المراد إرسالها في ملف test.txt أولاً: التنسيق هو stnid=A&pageno=123456...
NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');
// تم تثبيت الاستخدام المحدد لـ NMHTTP في دلفي. يوجد حاليًا مثال لاستخدام NMHTTP ضمن BorlandDelphi5DemosFastNetHttp.
تم تنفيذ كل ما سبق باستخدام NMHTTP. في الواقع، يمكن أيضًا استخدام مكون WebBrowser في دلفي لإرسال البيانات: Webbrowser1.OleObject.Document.FrontPage_Form1.submit();
ملاحظة: WebBrowser1 هو اسم مكون WebBrowser، وFrontpage_Form1 هو اسم النموذج الموجود في صفحة الويب المفتوحة باستخدام WebBrowser
يبدو النموذج الموجود على صفحة الويب كما يلي:
<اسم النموذج=FrontPage_Form1 الإجراء=http://message.com.cn/cgi-bin/ips/webpageing الأسلوب=post>
...
</النموذج>
طريقة التنفيذ هي استخدام برنامج لإنشاء صفحة ويب بناءً على معلومات إدخال المستخدم، ثم تمرير WebBrowser1.Navigate (صفحة الويب التي تم إنشاؤها)، وإرسالها أخيرًا إلى الخادم Webbrowser1.OleObject.Document.FrontPage_Form1.submit(); يتم الانتهاء بمجرد الترحيل