谁知道WAPPUSH 的实现原理

hujian219 2006-05-18 02:10:19
WAPPUSH 是不是一定要用二进制代码发送??能不能已字符型发送?
...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vyzm 2007-01-23
  • 打赏
  • 举报
回复
wap push包的构成:
WDP+WSP+SI/SL

[范例]
06 05 04 0B 84 23 F0 81 06 06 03 8D 82 02 05 6A 00 45 C6 08 0C 03 77 75 68 61 6e 32 2e 70 70 63 6f 6d 6d 2e 63 6f 6d 2f 77 61 70 74 65 73 74 2f 74 65 73 74 2e 61 73 70 78 00 0A C3 07 20 03 01 01 00 00 00 10 C3 07 20 04 01 01 00 00 00 01 03 41 6c 6c 46 61 73 74 20 54 65 73 74 00 01 01

1、单包:
Total:(XX为未固定)
06 05 04 0B 84 23 F0 81 06 06 03 8D XX 02 05 6A 00 45 C6 08 0C 03 XX 00 0A C3 07 20 03 01 01 00 00 00 10 C3 07 20 04 01 01 00 00 00 01 03 XX 00 01 01

WDP(UDH):
06 05 04 0B 84 23 F0
/************************
解释:
06 'User Data Header Length (6 bytes)
05 'UDH Item Element id (Port Numbers)
04 'UDH IE length (4 bytes)
0B 84 'destination port number
23 F0 'origin port number
*************************/

WSP(Push PDU):
81 06 06 03 8D XX
/************************
解释:
81 'transaction id (connectionless WSP)
06 'pdu type (06=push)
06 'Headers len
03 AE 81 EA 'content type: application/vnd.wap.sic; charset=utf-8
8D 'content-length
XX '这里就是Push消息体的长度
*************************/

SI/SL(Push消息体):
02
05 '-//WAPFORUM//DTD SI 1.0//EN
6A 'UTF-8
00
45 '<si>
C6 '<indication
08 '<action=signal-high>
0C 'href=\"http://
03 '字符串开始
'这里就是url从\"http://\"以后的那部分的每个字符的ASCII码
00 '字符串结束
0A 'created=
C3 '时间
07 '7个字节,也可以是04,下面就只需要年月日就可以了
20 03 01 01 00 00 00 '年,月,日,时,分,秒,格式如何一看就明白吧。
10 'si_expires=
C3 '时间
07 '7个字节,也可以是04,下面就只需要年月日就可以了
20 04 01 01 00 00 00 '跟上面一样
01 '>
03 '字符串开始
'这里就是显示给用户的内容,用utf-8编码。
'utf-8编码,英文字符直接用ascii码;中文如果unicode是(二进制)abcdefgh ijklmnop,
'那么utf-8就会变成1110abcd 10efghij 10klmnop
00 '字符串结束
01 '</indication>\"
01 '</si>

2、多包
WDP1 + (WSP+SI/SL)的part 1
WDP2 + (WSP+SI/SL)的part 2
...
WDPN + (WSP+SI/SL)的part N
go_my_sky 2007-01-23
  • 打赏
  • 举报
回复
TP_udhi = 1;
Msg_Fmt = 4;

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧