在DSAPI中,网络通讯主要有以下几种:
1 [TCP]
TCP服务端
TCP客户端
2 [UDP]
UDP服务端
UDP客户端
UDP指令版服务端
UDP指令版客户端
3 [HTTP]
HTTP服务端
(客户端由浏览器或任何能访问HTTP的函数或软件替代,DSAPI中未提供HTTP客户端)
HTTP指令版服务端
HTTP指令版客户端
对于以上这些,在开发网络通讯程序过程中如何选择呢?先看上述各服务端功能的主要服务对象:
TCP服务端 |
|
适用范围 |
需要高速通讯,且服务端主动推送信息 |
优 点 |
高速通讯、服务端主动传输 |
缺 点 |
必须服务端先开才能提供客户端连接、须自行维护一个断开重连机制 |
UDP服务端 |
|
适用范围 |
高速短数据量通讯(一般数据量不应超过65500字节) |
优 点 |
高速通讯、服务端可延迟启动、无需事先建立连接 |
缺 点 |
数据量较小、不能确保一定发送成功,建议服务端和客户端双方做应答机制 |
UDP指令版服务端 |
|
适用范围 |
高速短数据量通讯(一般数据量不应超过65000字节),目前大部分物联网、工业通讯等正在使用DSAPI中的UDP指令版服务端 |
优 点 |
高速通讯、服务端可延迟启动、无需事先建立连接、传输过程加密、内置自动重发、通讯失败(或无返回数据)自动触发事件、内置客户端用户名密码数据传递,可允许或拒绝返回给客户端数据 |
缺 点 |
数据量较小、服务端不能主动推送数据给客户端 |
HTTP服务端 |
|
适用范围 |
WebAPI、小型静态网页和数据服务、网站公共数据接口 |
优 点 |
无需超高速通讯、服务端可延迟启动、无需事先建立连接、迷你IIS、可在任何支持http通讯的服务端和客户端使用、最大数据量默认200M以内(可更改)、无需架设IIS即可开始静态网页服务 |
缺 点 |
服务端不能主动推送数据给客户端 |
HTTP指令版服务端 |
|
适用范围 |
高速通讯,目前很多物联网、工业通讯、医院医药等正在使用DSAPI中的HTTP指令版服务端 |
优 点 |
高速通讯、服务端可延迟启动、无需事先建立连接、传输过程加密、内置自动重发、通讯失败(或无返回数据)自动触发事件、内置客户端用户名密码数据传递,可允许或拒绝返回给客户端数据 |
缺 点 |
服务端不能主动推送数据给客户端 |