乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      短信開發(fā)基礎(chǔ)知識以及短信貓發(fā)短信wappush短信.

       hh3755 2011-09-07

      1.1. 基本知識

      短信開發(fā)指通過串口 at 命令驅(qū)動短信進行短信發(fā)送和接收操作。

       java  主要使用 javax.comm 包進行開發(fā),

      sun 公司網(wǎng)上地址  http://java./products/javacomm/

      使用工具  windows 自帶超級終端

       

      短信操作分為三種模式 block,pdu  Text

      短信傳送有三種編碼 7 位, 8 位, UniCode

      at 命令 ,at 命令是驅(qū)動短信設(shè)備的標準工業(yè)命令,除了業(yè)界的標準之外,每個廠商可能會對其進行擴展,不過一般來說,標準命令應(yīng)該夠用,這次用的是西門子 tc35i ,有專門的 at 命令文檔。

       

       

      1.1.1.     相關(guān)文檔

      Gsm03.38 規(guī)范: Alphabets and language-specific information 著重介紹短信發(fā)送中對字符集的控制部分

      Gsm03.40 規(guī)范: Technical realization of the Short Message Service (SMS) Point-to-Point (PP) 詳細介紹各種不同短信的不同實現(xiàn)

      Gsm07.05 規(guī)范: Use of Data Terminal Equipment - Data Circuit terminating;Equipment (DTE - DCE) interface for Short Message Service (SMS) and Cell Broadcast Service (CBS) ,介紹 at 的一些控制命令。

      Gsm07.07 規(guī)范:著重介紹 at 的短信相關(guān)命令,可以說是 at  sms 規(guī)范。

      1.1.2.     Block 模式

      Block 模式基本已經(jīng)被 pdu 模式取代,沒有具體研究

      1.1.3.     Text 模式

      Text 模式比較簡單,但是支持的設(shè)備不是很全,而且對于中文似乎有些問題,在金笛的網(wǎng)站技術(shù)資料中似乎提到了一句不能實現(xiàn)中文。

      AT  CGMF=1<CR>

      AT  CGMS=  13605696031  ,129<CR> 
      >Hello World!<^Z>

      1.1.4.     Pdu 模式

      pdu 編碼主要包括兩個主要的部分,一是 pdu 串的整體數(shù)據(jù)格式,分別因為發(fā)送信息串和接收信息串而有區(qū)別,二是 pdu 中文本部分的編碼,分別因為字符集而不同。

      我們也可以這樣來理解這個 pdu 編碼的格式, sms 相當于一個協(xié)議棧,最簡單的協(xié)議棧:

      根據(jù) gsm03.40 規(guī)范, sms 協(xié)議包括以下幾層:

      1、  SM-AL :應(yīng)用層。這個部分就是數(shù)據(jù)部分。

      2、  SM-TL :傳輸層。我們可以清楚的看到這里描述了主要的短信內(nèi)容,包括發(fā)送號碼,接收號碼,信息類型,編碼,數(shù)據(jù)報長度等等,這也是我們編程主要要面對的問題。

      3、  SM-RL :中繼層。這個指的是短信在網(wǎng)關(guān)之間中繼需要的協(xié)議。

      4、  SM-LL: 鏈路層。

      從上述描述中我們可以清楚的看到,我們編程主要集中于傳輸層。

       

      PDU 串的用戶信息 (TP-UD) 段最大容量是 140 字節(jié),所以在這三種編碼方式下,可以發(fā)送的短消息的最大字符數(shù)分別是 160 、 140  70 。這里,將一個英文字母、一個漢字和一個數(shù)據(jù)字節(jié)都視為一個字符。

       

      1.2. SMS 用戶數(shù)據(jù)的編碼方法

      1.2.1.     英文 7 位編碼

       

      圖片不能正確顯示

      這是
       gsm 的默認編碼方式

      由于這樣的移位,我們可以看到我們能發(fā)的最多英文字符等于: 140*8/7 = 160 

      1.2.2.     數(shù)據(jù) 8 位編碼

      8-bit 編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;

      1.2.3.     中文 pdu 編碼

      發(fā)送中文時,必須用 UCS2  utf-16 )進行編碼,最多可以發(fā) 140/2  70 個漢字。

      UniCode 編碼轉(zhuǎn)換也比較簡單,以中文為例,一個中文字符是兩個字節(jié),直接對高位字節(jié)和低位字節(jié)進行十六進制轉(zhuǎn)換就可以了。如“歡迎”, UniCode 編碼是 6B22 8FCE ,這同時也就是轉(zhuǎn)換的結(jié)果,如果發(fā)送的串中有英文字符,那么在前面補全 00 ,以保證一個字符對應(yīng)兩個字節(jié)。

      1.2.4.     Wap-push 中的中文編碼

       wap-push 短信的時候有些問題了,開始的時候也按照 Unicode 編碼處理,總是失敗,后來才發(fā)現(xiàn),有個編碼字段設(shè)為了 uft-8 ,所以在這種情況下,還是可以出現(xiàn)其他編碼方式的。

       

      1.3. 短信報頭分析

      1.3.1.     短信類型

      詳細請參考 gsm 0438 規(guī)范和 gsm0440 規(guī)范,里面有詳細的關(guān)于各種短消息類型的描述。

       sms 中到底支持多少種類型的短信,短信類型由什么進行控制,這是我們在這里需要著重介紹的問題。

      在傳輸層來分,一共有六大短信類型: SMS-DELIVER  SMS-DELIVER-REPORT , SMS-SUBMIT

      , SMS-SUBMIT-REPORT  SMS-STATUS-REPORT , SMS-COMMAND ,這六種短信類型,由短信中心地址后的第一個字節(jié)的最低兩位控制。

       

      bit1

      bit0

      Message type

      0

      0

      SMS-DELIVER (in the direction SC to MS)

      0

      0

      SMS-DELIVER REPORT (in the direction MS to SC)

      1

      0

      SMS-STATUS-REPORT (in the direction SC to MS)

      1

      0

      SMS-COMMAND (in the direction MS to SC)

      0

      1

      SMS-SUBMIT (in the direction MS to SC)

      0

      1

      SMS-SUBMIT-REPORT (in the direction SC to MS)

      1

      1

      Reserved

       

      也就是說,每個短信在短信中心地址之后的第一個字節(jié)的最低兩位是至關(guān)重要的。他決定了如何讀這條短信(結(jié)合是發(fā)送的,還是接收的)

      1.3.2.    地址編碼

      短信發(fā)送中都會涉及到短信地址的問題,他們的編碼規(guī)則是一致的 , 簡單來說就是 BCD8421編碼。

      如: 08 91 683108501505F 0 ,

      08 :地址長度,(號碼類型 + 號碼長度) /2 的十六進制表示

      91 :號碼類型

      683108501505F 0 :號碼,實際號碼應(yīng)為: 8613805515500 ,號碼處理方法為 , 如果為 +86 開始 ,  + 號去掉 ,然后判斷是否為偶數(shù) , 不是在末尾補 F, 然后將奇數(shù)位和偶數(shù)位互換

      1.3.3.     TP-DCS( 數(shù)據(jù)編碼格式 )

      這個字節(jié)比較特殊,表明整個短信的字符編碼,數(shù)據(jù)內(nèi)容等信息。詳細說明參考 gsm03.38 規(guī)范。

      1.3.4.     第一個字節(jié)

      Pdu 編碼的第一個字節(jié)比較有意思,這個字節(jié)會根據(jù)六種不同的短信按位有不同的意思,拿句專業(yè)一點的話來說,叫bitmask. 用圖來大概描述一下,詳細參考 gsm0340  9.2.3 段。

       

       

      位數(shù)

      MSG_Deliever

      MSG_SUBMIT

      7

      TP_RP (回復(fù)地址)

      TP_RP

      6

      TP_UDHI (數(shù)據(jù)報頭)

      TP_UDHI

      5

      TP_SRI (需要回復(fù))

      TP_SRR (請求回復(fù))

      4

       

      TP_VPF( 時間格式 )

      3

       

      2

      TP_MMS (多條短信標志, 1為無, 0 為有)

      TP_RD( 拒絕重復(fù)標志 )

      1  0

      TP_MTI (短信類型)

      TP_MTI

      常見值

      04 ,正常收到, 44 ,有報頭短信

      11 ,正常發(fā)送, 51 ,有報頭短信

      1.3.5.     TP-PID (協(xié)議標識)

      在這個里面還有一個字節(jié)比較特殊,就是協(xié)議標識。

      一般都是 00 ,表示點到點的標準短信。

      1.3.6.     超長短信

      參考 gsm0340  9.2.3 .24TP_UD 部分,這個部分中間的一種情況就是描述超長短信的處理。

      長短信關(guān)鍵涉及一個數(shù)據(jù)報頭的問題,數(shù)據(jù)報頭由“長度”和多個“數(shù)據(jù)元素”組成。

      1.3.7.     Wap-push 短信

      WAP 的推送協(xié)議中定義了服務(wù)指示( SI  Service Indication )和服務(wù)加載( SL  Service Load )兩項服務(wù),以給用戶和網(wǎng)絡(luò)運營者更多的選擇。服務(wù)指示是將新信息的指示和相關(guān)的通用資源標識符( URI )推送給用戶,由用戶選擇是立即處理信息還是以后處理。服務(wù)加載是將一項服務(wù)的 URI 推送給用戶,然后客戶端自動地使用 PULL 技術(shù)根據(jù)該 URI 啟動服務(wù)。兩種服務(wù)的區(qū)別在于用戶是否介入推送信息的處理過程。 SL 對推送信息的處理對用戶來說是透明的,而 SI 則在指示用戶的同時,請用戶對隨后的處理做出選擇。 
      PUSH
       可以將某一站點或某一業(yè)務(wù)的鏈接通過短信發(fā)送到支持 WAP PUSH 功能的手機上,這樣用戶只需要閱讀這條短信,打開短信中的鏈接,就可以直接訪問業(yè)務(wù)了。因此, WAP PUSH 實現(xiàn)了短信和 WAP 業(yè)務(wù)的結(jié)合,節(jié)省了用戶尋找業(yè)務(wù)的時間,方便用戶直接找到并使用自己喜歡的業(yè)務(wù)。

      Wap-push 短信的核心不同之處就在于:

      1、  含有數(shù)據(jù)報頭,也就是 TP_UDHI 位為 1 ,一般來說 pdu 的第一個字節(jié)發(fā)送時為 51 ,接收時為 44 

      2、  TP_DSC 字節(jié)不同,一般為 F5 ,表明字符集為 8 位,短信類型為 Class 1; 詳細解釋參看 gsm03.38 的第四章。

      1.4. 編碼示例

      1.4.1.     發(fā)送信息的 PDU 串:

      用手機寫一條短信息,發(fā)送手機號碼為 13605696031 ,信息內(nèi)容為“ Hello World! ”。通過執(zhí)行 AT  CMGL=2 可以讀出此條信息。

       

      AT  CMGL=2 { 讀未發(fā)短信息 
       CMGL: 1,2,,24 {1 表示信息個數(shù), 2 表示未發(fā)信息, 24 表示信息總?cè)萘?/span> 
      08 91 683108501505F0 11 00 0B 81 3106656930F1 0000FF 0B E8329BFD06DDDF723619 
      OK

       

      下面分析這條信息:

       

      08

      短信息中心地址長度。(短信息中心號碼類型 + 短信息中心號碼長度 /2 的十六進制表示)

      91

      短信息中心號碼類型, 91  TON/NPI 。 TON/NPI 遵守International/E.164 標準,指在號碼前需加‘+’號 ; 此外還可有其他數(shù)值,但 91 最常用。

      683108501505F 0

      短信息中心號碼,是所使用的服務(wù)中心地址。由于位置上略有處理,實際號碼應(yīng)為: 8613805515500( 字母 F 意指長度減1), 這是作者所在地 GSM 短信息中心的號碼。 ( 號碼處理方法為 , 如果為 +86 開始 ,  + 號去掉 , 然后判斷是否為偶數(shù) , 不是在末尾補 F, 然后將奇數(shù)位和偶數(shù)位互換 )

      11

      文件頭字節(jié) (header byte, 是一種 bitmask) 。這里 11 指正常地發(fā)送短信息。

      00

      信息參考號。( TP-MR 

      0D

      被叫號碼長度。被叫號碼長度的十六進制表示。

      81

      被叫號碼類型。

      3106656930F 1

      被叫號碼,也經(jīng)過了移位處理,實際號碼為 13605696031 。

      00

      協(xié)議標識 (TP-PID), 是普通 GSM 類型,點到點方式

      00

      用戶信息編碼方式 (TP-DCS) , 7-bit 編碼( 08  UCS2 編碼)

      FF

      有效期 (TP-VP), 短信的有效時間

      0B

      短信息長度

      E8329BFD06DDDF723619

      短信息內(nèi)容“ Hello World! ”。

      1.4.2.     接受信息的 PDU 

      讀取以上發(fā)送出來的



      短信貓發(fā)WAPpush短信:

      http://xjbclz./article/xjbclz-9-943385.html
      點到點短信WAPPUSH研究總結(jié)
       
      1、  在短信群發(fā)器里面插入移動的SIM卡,插上電源,并將群發(fā)器連接到串口上。
      2、  點擊開始菜單》程序》附件》通訊》超級終端,新建一個連接,例如取名為SMS,如圖一所示

      圖一
      點擊確定,選擇連接群發(fā)器的串口,如圖二所示

      圖二
      點擊確定,在彈出的對話框中選擇每秒位數(shù)9600(這個值因不同的群發(fā)器而有所不同,可以在4800,9600,19200這幾個值中試試看那個是對的),其他不要動,。如圖三
       

      圖三
      點擊確定。在超級終端的窗口中輸入at,如果出現(xiàn)OK說明連接成功。
      3、  依次輸入:
       
      at+cmgf=0回車
      at+cmgs=99回車
      0051000BA13119907311F000F5A7550B05040B8423F0000303010129060603AE81EA8DCA02056A0045C6080C0333672E6C6574762E636E2F000103E782B9E587BBE8BF9BE585A5E4B990E8A786E7A7BBE58AA8E4BCA0E5AA923347E997A8E688B7000101再按ctrl+z
       
      如圖四所示:

      圖四
       
      這時13910937110的手機就會收到一條短信,標題為“點擊進入樂視移動傳媒3G門戶”,內(nèi)容是一個鏈接,連接地址是http://3g./
       
      4、  下面解析一下:
      at+cmgf=0的意思是設(shè)置短信發(fā)送格式為pdu格式。
      at+cmgs=99的意思是發(fā)送一條短信,短信的總的長度(包括頭部和內(nèi)容)是99+1個字節(jié)(為什么是99+1個字節(jié),而不是99個字節(jié)我也不清楚)。
      下面的
      0051000BA13119907311F000F5A7550B05040B8423F0000303010129060603AE81EA8DCA02056A0045C6080C0333672E6C6574762E636E2F000103E782B9E587BBE8BF9BE585A5E4B990E8A786E7A7BBE58AA8E4BCA0E5AA923347E997A8E688B7000101
      就是短信的內(nèi)容的,他是十六進制的編碼,一個字節(jié)用兩個十六進制字符表示。我們可以把它分成兩部分,一部分是短信頭部,他們是前面的30個字節(jié),即
      0051000BA13119907311F000F5A755
      我們把它分成幾段來解析
      0051000BA1這一段是死的,我們不用管它。
      3119907311F0這一段是手機號碼,它的編碼是這樣的,在手機號碼后面加一個F,然后兩位兩位倒過來寫,例如3119907311F0表示的手機號碼是13910937110
      00F5A7這一段是死的,我們不用管它。
      55 表示短信內(nèi)容部分的字節(jié)數(shù)。用十六進制表示,例如55表示內(nèi)容部分為85個字節(jié)。
      至此,短信頭部結(jié)束,后面是短信的內(nèi)容部分
      0B05040B8423F0000303010129060603AE81EA8DCA02056A0045C6080C0333672E6C6574762E636E2F000103E782B9E587BBE8BF9BE585A5E4B990E8A786E7A7BBE58AA8E4BCA0E5AA923347E997A8E688B7000101
      我們也把它分成幾段來解析
      0B05040B8423F0000303010129060603AE81EA8DCA02056A0045C6080C03這一段是死的,我們不用管它。
      33672E6C6574762E636E2F表示的是鏈接的地址的http://后面的部分,這里實際上是“3g./”他是UTF-8編碼。
       000103這一段是死的,我們不用管它
      E782B9E587BBE8BF9BE585A5E4B990E8A786E7A7BBE58AA8E4BCA0E5AA923347E997A8E688B7這一段是短信的標題部分,用UTF-8編碼。
      000101這一段是死的,我們不用管它
       
      注:獲得一個字符串的UTF-8編碼的十六進制表示的方法很簡單,在記事本里面編輯,保存的時候選擇編碼方式為utf-8,然后用hexedit打開,去掉前面三個字節(jié),將后面的字節(jié)的十六進制拷出來就行了。
       
      5、附錄,下面對上面說的那幾個死的段落進行一些解析:
      a、  頭部0051000BA1段的解析
      00 SMSC地址信息的長度,00表示不用設(shè)置SMSC地址,即用手機上設(shè)置短信中心號碼。
      51 基本參數(shù)(TP-MTI/VFP) 不要求發(fā)送回復(fù)
      00 消息基準值(TP-MR)
      0B 對方電話的長度(即11位電話,一般的手機都是11位)
      A1 目標地址格式 A1表示為國內(nèi)格式
      b、  頭部00F5A7段的解析
      00 協(xié)議標識(TP-PID) 是普通GSM 類型,點到點方式
      F5 用戶信息編碼方式 (TP-DCS)
      A7 有效期(TP-VP)
      c、  內(nèi)容部分0B05040B8423F0000303010129060603AE81EA8DCA02056A0045C6080C03段的解析
      0B WAP PUSH頭部的總長度
      05040B8423F0表示接下來是一個WAP PUSH
      00 表示是Concatenated Short Messages
      03 長度
      03 reference number
      01 表示分成1個短信發(fā)送
      01 當前包的序號
      29060603AE81EA8DCA WSP
      02 標記位
      05 -//WAPFORUM//DTD SI 1.0//EN
      6A UTF-8
      00 標記開始
      45
      C6
      08
      0C href="http://
      03 字符串開始
      d、內(nèi)容部分000103這一段的解析
      00 URL 字符串結(jié)束  
      01 >
      03 標題字符串開始
      e、內(nèi)容部分000101這一段的解析
      00 內(nèi)容描述字符串結(jié)束
      01   
      01
      6、編碼工具的使用
      WAPPUSH編碼.html是我寫的一個編碼工具,雙擊以后,輸入手機號碼,地址內(nèi)容,標題內(nèi)容,點擊編碼,自動獲得編碼內(nèi)容,將編碼內(nèi)容拷貝到超級終端運行即可。如圖:

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多