手机开发实战133——SyncML介绍2

本文深入探讨SyncML的底层通讯机制,重点讲解了如何通过Http进行绑定和Tcp传输服务的相关细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SyncML底层通讯

2.1 绑定Http

2.1.1 Tcp 传输服务

Http通信一般是在 Tcp连接之上的,这个绑定不是必需的,如果Http基于其它的协议,那么需求也和下面Tcp定义的相似 
   
  2.1.1.1 连接 
  Http客户端连接到Http服务器端的时候,SyncML客户端建立一个Tcp连接在客户和服务器之间通过使用Tcp open操作,在超时的情况下还需要SyncML客户端从新建立连接。 
   
  2.1.1.2连接选项 
  关于端口和协议版本的一些选项。 
   
  2.1.1.3 断开连接 
  当连接不需要的时候,SyncML客户端负责使用tcp close操作结束连接。如果固定连接存在于Http请求中,Http连接的关闭有Http客户端来完成,当Http客户端接收到来自服务器的Http应答中指明这是最后一个SyncML的包。 
   
  2.1.1.4 终止 
  有时候非正常时间发生会要求应用程序中断Tcp连接,这种情况下,Tcp从新初始化来结束当前连接。 
   
  2.1.1.5 超时 
  当服务器超时,SyncML客户端需要重建一个新的HTTP会话并且Http服务器端会尝试从新发送当前的SyncML 
   
  2.1.2. SyncML信息交换 
  一旦Http连接建立,一个或者多个SyncML消息会通过连接由SyncML客户端传输,它们存在于Http客户端的请求或者Http服务器端的应答中。 
   
  Http请求中POST方法用来传递SyncML消息。 
   
  2.1.2.1 每包一个消息 
  下面是Http请求的部分代码: 
  POST ./servlet/syncit HTTP/1.1 
  Host: www.datasync.org 
  Content-Type: application/vnd.syncml-xml; charset="utf-8" 
  Content0Length: 1023 
  Accept: application/vnd.syncml-xml 
   
  下面是Http应答的部分代码: 
  HTTP/1.1 200 ok 
  Content-Type: application/vnd.syncml-wbxml; charset="utf-8" 
  Content-LengthL 1023 
  --HTTP body--- 
   
   
  2.1.2.2 一个包里包含多个消息 
  每一个Sync消息必须使用SyncML MIME媒体类型在HTTP请求或应答中传递,当每个包里有多个SyncML消息的时候,每一个消息是否在分离的HTTP请求或应答传递依赖于它是否是SyncML的请求和应答。可以根据每一个SyncML消息是否有最后一个元素来判断这个包中是否有更多的SyncML消息,如够有最后一个元素,那么这消息就是该包中最后一个消息。 
   
  2.1.3 传输命令 
  HTTP使用一系列的命令,包括传输方法,头部信息,请求的头部信息,应答的头部信息 
   
  2.1.3.1 传输方法 
  SyncML客户端必须使用POST方法或者可以使用CONNECT方法(如果支持的话)来给SyncML服务器发送SyncML请求。CONNECT方法用来初始化SSL会话以验证HTTP客户和服务器,其他的方法目前没有用在SyncML客户端。 
   
  2.2 绑定Obex 
   
  2.3 绑定Wsp 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值