国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

用Delphi實現(xiàn)BP機(jī)、手機(jī)短訊

2019-11-18 18:49:59
字體:
供稿:網(wǎng)友
很多人一定用過OICQ,想必也用過了它的BP機(jī)短訊、手機(jī)短訊,編程的朋友一定想實現(xiàn)這種功能,如果你的程序能發(fā)到手機(jī)、發(fā)到BP機(jī)一定很酷。現(xiàn)在我就介紹一種可行的方法。

  一、原理

  它不同于OICQ的雙方都在網(wǎng)上才能進(jìn)行交流的尋呼功能,它可以將文字信息發(fā)送到真正的尋呼機(jī)上。只要你能夠上網(wǎng),就可以自己動手,隨時隨地將信息發(fā)送出去,即使你在國外,也可以利用它來向國內(nèi)的友人發(fā)送信息了,而且不用交納國際長途費用,是不是方便又省事呢!

  二、分析

  現(xiàn)在網(wǎng)上各尋呼臺都有網(wǎng)上服務(wù),網(wǎng)頁尋呼(Web Paging)就是常用的一種。它是通過在互聯(lián)網(wǎng)上訪問尋呼臺的主頁,然后由尋呼臺的信息尋呼系統(tǒng)打傳呼。所以我們只要利用HTTP協(xié)議就可以實現(xiàn)網(wǎng)絡(luò)尋呼了。以下就簡單介紹一下HTTP協(xié)議: HTTP中完成一個會話通常要完成:

  1)客戶端程序與服務(wù)器建立連接

  2)發(fā)送請求

  3)服務(wù)器響應(yīng)客戶端

  4)關(guān)閉連接

  HTTP常用到的請求有:

   1)GET(請求一萬維網(wǎng)頁)

   2)HEAD(讀取一萬維網(wǎng)頁的頭部)

   3)PUT(請求一存儲萬維網(wǎng)頁)

   4)POST(附加一個命名的資源)

   5)DELETE(刪除萬維網(wǎng)頁)

   6)LINK(連接兩個已有的資源)

   7)UNLINK(斷開兩個已有資源的連接)

  HTTP中常用到的應(yīng)答狀態(tài)代碼有:(*號代表0-9間的一個數(shù))

   1. 1** (信息)

   2. 2**(成功)

   3.4**(客戶端錯誤)

   4.5**(服務(wù)器錯誤)

其實我們要實現(xiàn)的程序,只用POST、GET請求,收到正常應(yīng)答就可以了。POST可以用于把用戶輸入的數(shù)據(jù)以數(shù)據(jù)流的方式傳給CGI程序,CGI通過Contect-Length環(huán)境變量來取相應(yīng)長度的數(shù)據(jù)流信息。

  POST請求格式如下:

  POST http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0

  Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-Powerpoint, application/vnd.ms-Excel, application/msWord, */*

  Referer: http://www2.scuta.edu.cn/stu/

  Accept-Language: zh-cn

  Content-Type: application/x-www-form-urlencoded

  PRoxy-Connection: Keep-Alive

  User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)

  Host: www2.scuta.edu.cn

  Content-Length: 87

  Pragma: no-cache

  Cookie: ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK

  服務(wù)器正常應(yīng)答的頭部結(jié)構(gòu)為:

   200 OK HTTP/1.0 說明提交數(shù)據(jù)成功

  三、程序的實現(xiàn)

  Delphi中NMHTTP已經(jīng)可以很容易的實現(xiàn)上面的所說的數(shù)據(jù)提交,而且它還支持Proxy、這樣對于通過代理服務(wù)器上網(wǎng)一樣可以適用,并且它不是OICQ中發(fā)送訊信所用到SOCKET5代理。

  新建一個窗體,加入組件一個ComboBox,命名為callto,用于存放尋呼對象,如國信尋呼就有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設(shè)為呼機(jī)類型,items中加入兩項,分別為中文機(jī)、數(shù)字機(jī);加入組件Edit,命名為firstName,用于表示發(fā)尋呼人的姓;加入組件RadioGroup,命名為RadioGroup2,Caption設(shè)為尋呼人性別,items中加入兩項,分別為先生、小姐;加入組件Memo,命名為callmsg,用于輸入發(fā)送的信息(注:對于數(shù)字機(jī)只能是數(shù)字信息);加入組件NMHTTP,命名為NMHTTP1;加入Checkbox,命名為ifuseproxy,用于確定是否使用代理服務(wù)器;加入兩個Edit組件,分別用于軟件代理服務(wù)器地址、代理服務(wù)器端口;最后加入命令按鈕,Caption設(shè)為“發(fā)送”。

  現(xiàn)在以國信尋呼為例,它用GET請求就可以實現(xiàn)了,“發(fā)送”按鈕的程序代碼如下:

procedure TForm1.Button1Click(Sender: TObject);
var callstr:string;
begin callstr:='http://tcase RadioGroup1.ItemIndex of
0:callstr:=callstr+'&pager_type=C';
1:callstr:=callstr+'&pager_type=N';
end;
callstr:=callstr+'&firstname='+firstname.text;
case RadioGroup2.ItemIndex of
0:callstr:=callstr+'&title=0';
1:callstr:=callstr+'&title=1';
end;
callstr:=callstr+'&msg='+callmsg.Text+'&answer=null&B1=發(fā)送尋呼';
NMHTTP1.InputFileMode := FALSE;
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
If ifuseproxy.Checked then
Begin
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
End;
NMHTTP1.Get(callstr);
end;


  有些尋呼(如潤迅尋呼就不能用上面的GET請求實現(xiàn),它要用POST請求),使用與上面相差不大,如下面是NMHTTP的POST用法:

NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True;
NMHTTP1.ReportLevel:=Status_Basic;
If ifuseproxy.Checked then
Begin
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
End;
With NMHTTP1.HeaderInfo do
Begin
Cookie := Edit5.Text;
LocalMailAddress := Edit6.Text;
LocalProgram := Edit7.Text;
Referer := Edit8.Text;
UserID := Edit9.Text;
Password := Edit10.Text;
End;


// 把要提交的數(shù)據(jù)先放在test.txt文件中:格式為stnid=A&pageno=123456....

NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');

file://NMHTTP的具體用法在Delphi安裝目前BorlandDelphi5DemosFastNetHttp下有個NMHTTP使用的例子。

  以上都是用NMHTTP實現(xiàn)的,其實用Delphi中的WebBrowser組件同樣可以完成數(shù)據(jù)的提交,使用是這樣的 Webbrowser1.OleObject.Document.FrontPage_Form1.submit();

  說明:WebBrowser1是WebBrowser組件的名,Frontpage_Form1是用WebBrowser打開的網(wǎng)頁中的表單名

  網(wǎng)頁中的表單是這機(jī)樣的:

<FORM action=http://message.com.cn/cgi-bin/ips/webpaging method=post name=FrontPage_Form1>
.......
</FORM>


這樣的實現(xiàn)方法就是用程序生成一個已經(jīng)按用戶輸入信息生成一個網(wǎng)頁,然后通過WebBrowser1.Navigate(生成的網(wǎng)頁),最后提交到服務(wù)器Webbrowser1.OleObject.Document.FrontPage_Form1.submit();這樣就完成了一次尋呼

上一篇:如何在Delphi中實現(xiàn)ASP編程

下一篇:優(yōu)化delphi5.0秘籍大曝光

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 合肥市| 易门县| 广水市| 乐都县| 青浦区| 吉木萨尔县| 沙河市| 荥经县| 灯塔市| 岳池县| 科尔| 新乐市| 井研县| 陈巴尔虎旗| 安化县| 呼玛县| 彭山县| 都昌县| 汾西县| 梓潼县| 福清市| 云南省| 深水埗区| 泾阳县| 长沙县| 陇川县| 肃南| 新巴尔虎左旗| 沅陵县| 澄城县| 东平县| 三门峡市| 米泉市| 永平县| 繁峙县| 文登市| 云霄县| 商城县| 台东县| 达孜县| 黎平县|