我们做了一个软件,要求将客户端的数据通过网络传输到服务器端,首先要认证用户名和密码,认证通过后才能传输,服务器将收到的数据写进SQL数据库,由于数据量非常大,并且对数据库的操作要求非常准确。所以想请教各位,是不是我需要采用一种协议机制,以保证数据能够正确传输和写入数据库。是不是有这样的协议标准。

解决方案 »

  1.   

    严格的说你所做的不能叫“协议”。只能算个数据结构。在你的TCP/IP数据包你加上你自己的标示、数据包长度、数据校验等就可以了!
      

  2.   

    做个例子供参考:数据传输协议:第一组:认证协议:
    (Server 发送给 Client):
    100 认证通过,等待响应
    101 认证未通过,请重新发送认证信息
    102 认证未通过,次数已到,连接断开
    (Client 发送给 Server):
    120 准备向服务器端发送数据
    121 准备向服务器端下载数据第二组:服务器端接收数据并存入SQL SERVER数据库
    (Server 发送给 Client):
    2000 等待接收客户发送数据
    2001 数据接收完毕(Client 发送给 Server):
    22000 发送“表(channel)”中的数据
    22001 “表(channel)”中当前记录的数据发送完毕
    22002 “表(channel)”中所有数据发送完毕22010 发送“表(contentrecord0)”中的数据
    22011 “表(contentrecord0)”中当前记录的数据发送完毕
    22012 “表(contentrecord0)”中所有数据发送完毕22020 发送“表(contentrecord1)”中的数据
    22021 “表(contentrecord1)”中当前记录的数据发送完毕
    22022 “表(contentrecord1)”中所有数据发送完毕22030 发送“表(contentrecord2)”中的数据
    22031 “表(contentrecord2)”中当前记录的数据发送完毕
    22032 “表(contentrecord2)”中所有数据发送完毕22040 发送“表(contentrecord3)”中的数据
    22041 “表(contentrecord3)”中当前记录的数据发送完毕
    22042 “表(contentrecord3)”中所有数据发送完毕22050 发送“表(contentrecord4)”中的数据
    22051 “表(contentrecord4)”中当前记录的数据发送完毕
    22052 “表(contentrecord4)”中所有数据发送完毕22060 发送“表(contentrecord5)”中的数据
    22061 “表(contentrecord5)”中当前记录的数据发送完毕
    22062 “表(contentrecord5)”中所有数据发送完毕22070 发送“表(contentrecord6)”中的数据
    22071 “表(contentrecord6)”中当前记录的数据发送完毕
    22072 “表(contentrecord6)”中所有数据发送完毕22080 发送“表(contentrecord7)”中的数据
    22081 “表(contentrecord7)”中当前记录的数据发送完毕
    22082 “表(contentrecord7)”中所有数据发送完毕22090 发送“表(contentrecord8)”中的数据
    22091 “表(contentrecord8)”中当前记录的数据发送完毕
    22092 “表(contentrecord8)”中所有数据发送完毕22100 发送“表(contentrecord9)”中的数据
    22101 “表(contentrecord9)”中当前记录的数据发送完毕
    22102 “表(contentrecord9)”中所有数据发送完毕22110 发送“表(label)”中的数据
    22111 “表(label)”中当前记录的数据发送完毕
    22112 “表(label)”中所有数据发送完毕22120 发送“表(webSite)”中的数据 (只发送一条记录数据)
    22122 “表(webSite)”中所有数据发送完毕22201 所有数据发送完毕