OICQ を使用したことのある人は多いでしょう。BP マシンのテキスト メッセージや携帯電話のテキスト メッセージも使用したことがあるでしょう。プログラミング友達はこの機能を実現したいと考えているはずです。
あなたのプログラムを携帯電話や BP マシンに送信できたら素晴らしいでしょう。
では、考えられる方法を紹介します。
1. 原則
これは、双方がオンラインの場合にのみ通信できる OICQ のページング機能とは異なり、実際のページャーにテキスト メッセージを送信できます。インターネットにアクセスできる限り、いつでもどこでも自分で情報を送信でき、海外にいても中国の友人に情報を送信することができ、国際料金を支払う必要もありません。距離料金もかからず便利ですね!
2. 分析
現在、インターネット上のすべてのページング ステーションにオンライン サービスがあり、Web ページングが一般的に使用されています。これは、インターネット上のページング局のホームページにアクセスし、ページング局の情報ページングシステムによってページングを行うことにより行われる。したがって、HTTP プロトコルを使用してネットワーク ページングを実装するだけで済みます。以下に HTTP プロトコルの簡単な概要を示します。
HTTP でセッションを完了するには、通常次のことが必要です。 1) クライアント プログラムがサーバーとの接続を確立する 2) リクエストを送信する 3) サーバーがクライアントに応答する 4) 接続を閉じる
一般的に使用される HTTP リクエストは次のとおりです。 1) GET (Web ページのリクエスト) 2) HEAD (Web ページのヘッダーの読み取り) 3) PUT (保存された Web ページのリクエスト) 4) POST (名前付きリソースの添付) 5 )DELETE ( World Wide Web を削除します) 6)LINK (2 つの既存のリソースを接続します) 7)UNLINK (2 つの既存のリソースを切断します)
HTTP で一般的に使用される応答ステータス コードは次のとおりです。 (* は 0 ~ 9 の数字を表します) 1. 1** (情報) 2. 2** (成功) 3.4** (クライアント エラー) 4.5** (サーバー エラー)
実際、実装したいプログラムは POST リクエストと GET リクエストのみを使用し、通常のレスポンスを受け取ります。 POST を使用すると、ユーザーが入力したデータをデータ ストリームの形式で CGI プログラムに渡すことができます。CGI は Contact-Length 環境変数を使用して、対応する長さのデータ ストリーム情報を取得します。
POST リクエストの形式は次のとおりです。
POST http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0
受け入れる: image/gif、image/x-xbitmap、image/jpeg、image/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
プラグマ: キャッシュなし
Cookie: ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK
サーバーの通常の応答のヘッダー構造は次のとおりです。
200 OK HTTP/1.0 はデータの送信が成功したことを示します
3. プログラムの実施
Delphi の NMHTTP は、上記のデータ送信を簡単に実装できます。また、プロキシもサポートしています。これは、プロキシ サーバーを介したインターネット アクセスにも適用でき、OICQ でメッセージを送信するために使用される SOCKET5 プロキシではありません。
新しいフォームを作成し、callto という名前の ComboBox コンポーネントを追加して、ページング オブジェクトを保存します。たとえば、Guosen ページングには 95908、94908、94909、98062、98063、98019、98035、98052、98038、99055、98060、98061、98051、があります。 98003、 99062、99016、99017、99018、99019、99046、99076; コンポーネント Edit を追加し、ページング番号を表す tonumber という名前を付けます。コンポーネント RadioGroup を追加して RadioGroup1 という名前を付け、Caption をポケットベル タイプに設定し、2 つの項目を追加します。アイテム、それぞれ中国の機械、デジタル マシン。firstName という名前のコンポーネント Edit を追加し、ページを送信した人の姓を示します。RadioGroup2 という名前のコンポーネント RadioGroup を追加します。Caption はアイテムに 2 つの項目を追加します。および Miss; 追加 callmsg という名前のコンポーネント Memo は、送信された情報を入力するために使用されます (注: デジタル マシンの場合、NMHTTP1 という名前のコンポーネント NMHTTP を追加し、プロキシ サーバーを使用するかどうかを決定するための 2 つの編集コンポーネントを追加します。プロキシサーバーのポート。最後にコマンドボタンを追加し、キャプションを「送信」に設定します。
Guosen ページングを例に挙げます。「送信」ボタンのプログラム コードは次のとおりです。
プロシージャ TForm1.Button1Click(送信者: TObject);
var 呼び出し文字列:文字列;
begin callstr:='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 リクエストが必要です) の使用法は上記とあまり変わりません。たとえば、次は NMHTTP の POST 使用法です。
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True;
NMHTTP1.ReportLevel:=Status_Basic;
ifuseproxy.Checked の場合
始める
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
終わり;
NMHTTP1.HeaderInfo を使用すると、
始める
Cookie := Edit5.Text;
LocalMailAddress := Edit6.Text;
LocalProgram := Edit7.Text;
リファラー := Edit8.Text;
ユーザーID := Edit9.Text;
パスワード := Edit10.Text;
終わり;
//送信するデータを最初に test.txt ファイルに入れます。形式は stnid=A&pageno=123456... です。
NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');
//NMHTTP の具体的な使用法は Delphi にインストールされています。現在、NMHTTP の使用例は BorlandDelphi5DemosFastNetHttp にあります。
上記はすべて NMHTTP を使用して実装されています。実際、Delphi の WebBrowser コンポーネントは次のように使用できます。
注: WebBrowser1 は WebBrowser コンポーネントの名前、Frontpage_Form1 は WebBrowser で開かれた Web ページ内のフォームの名前です。
Web ページ上のフォームは次のようになります。
<FORM name=FrontPage_Form1 action=http://message.com.cn/cgi-bin/ips/webpaging method=post>
...
</フォーム>
実装方法は、プログラムを使用してユーザーの入力情報に基づいて Web ページを生成し、WebBrowser1.Navigate (生成された Web ページ) を渡し、最後にそれをサーバーに送信します Webbrowser1.OleObject.Document.FrontPage_Form1.submit();ページングが完了すると完了します