C#局域网聊天工具制作系列讲座(1)_通讯协议

zx022 2009-01-22 01:53:22
网络通讯编程的基础便是协议,信息的发送常用的协议有面向连接的TCP协议,以及不面向连接的UDP协议。
TCP:Transmission Control Protocol 传输控制协议,其是一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。
UDP:User Datagram Protocol 用户数据报协议 (RFC 768),UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。
系统也要定义自己的通讯协议,来完成一些系统的功能,如用户上,下线的通知,都要定义自己的通讯协议来完成相应的功能!也可以称这种自定义的协议为“命令”。
下面以著名的飞鸽传书为例,说明其自定义的协议(命令)
IPMSG_NOOPERATION 不进行任何操作
IPMSG_BR_ENTRY 用户上线
IPMSG_BR_EXIT 用户退出
IPMSG_ANSENTRY 通报在线
IPMSG_SENDMSG 发送消息
IPMSG_RECVMSG 通报收到消息
IPMSG_GETFILEDATA 请求通过TCP传输文件
IPMSG_RELEASEFILES 停止接收文件
IPMSG_GETDIRFILES 请求传输文件夹 以“IPMSG_BR_ENTRY 用户上线”和“IPMSG_ANSENTRY 通报在线”为例说明命令处理流程:当程序启动时,命令IPMSG_BR_ENTRY被广播到网络中,向所有在线的用户提示一个新用户的到达(即表示“我来了”);所有在线用户将把该新上线用户添加到自己的用户列表中,并向该新上线用户发送IPMSG_ANSENTRY命令(即表示“我在线”);该新上线用户接收到IPMSG_ANSENTRY命令后即将在线用户添加到自己的用户列表中。

PS:根据本系统的特征,可以在聊天部分采用UDP协议,在文件传输,视频,语音功能上采用TCP协议
...全文
483 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YapingXin 2011-05-03
  • 打赏
  • 举报
回复
期待看到成系列的文章。
Traitor0828 2011-05-01
  • 打赏
  • 举报
回复
木有了?
w_l_851110 2010-11-24
  • 打赏
  • 举报
回复
然后呢?
aofengdaxia 2010-10-13
  • 打赏
  • 举报
回复
继续!!!!!!!!!!
  • 打赏
  • 举报
回复

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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