关于网络数据的协议

vcsongs 2002-10-15 08:53:28
TCP/IP编程中, 大家一般都使用什么样风格的协议呢? 交流一下. :)
...全文
29 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lastcsdn2166 2002-10-18
  • 打赏
  • 举报
回复
楼上的老兄说的很对
严重同意:)
cococut 2002-10-18
  • 打赏
  • 举报
回复
QQ登陆的协议(tcp):
client->server: 2 1 0(这三个字接为协议字) 1000000(QQF号码)
server->client: 2 2 0(这三个字接为协议字) 0(表示登陆成功)
QQ的文字消息发送(udp):
client->server: 3 1 0(这三个字接为协议字) 7(消息的长度,四个字节) "message"(消息)
server->client: 3 2 0(这三个字接为协议字) 7(消息的长度,四个字节)"message"(消息发送成功)

自定义的协议一般都是这样,选用tcp 还是 udp协议,看你的应用需要,比如对于一些数据量比较大(文件的传输,语音数据的传输等等),一般选用udp,对于登陆这样的协议,因为要确保登陆信息正确的发送到服务器,所以采用tcp,向发文本信息这类,采用udp,因为计算发送一次文本信息失败,也无伤大雅,不过对于udp你要自己设置超时和重发的机制!
chen_jun_fen 2002-10-18
  • 打赏
  • 举报
回复
在发送数据之前,先发个标识头,
renren6250 2002-10-18
  • 打赏
  • 举报
回复
UP
yaotang 2002-10-18
  • 打赏
  • 举报
回复
UP一下
这帖子不错
vcsongs 2002-10-18
  • 打赏
  • 举报
回复
谢谢 cococut:
好的协议有助于你好的实现. 为什么HTTP, STMP, POP3, FTP等协议是这个样子. 原因如何等等, 大家继续. :)
qrlvls 2002-10-17
  • 打赏
  • 举报
回复
TCP/UDP/原始Socket或者自己重新封装数据包
用户 昵称 2002-10-17
  • 打赏
  • 举报
回复
udp
HeShe 2002-10-17
  • 打赏
  • 举报
回复
udp再局域网中事实上是很可靠的。但发/收方没有在发送速度上协调,如果发送的速度快过接收速度,当接收缓冲区满后,便会有很严重的丢包,这时便要自定义控制协议来协调了,比如发回应包等。但如果时广播的话怎么办?
yaotang 2002-10-15
  • 打赏
  • 举报
回复
GZing
lightrain 2002-10-15
  • 打赏
  • 举报
回复
其实没必要非得在使用UDP的时候另外加校验重传机制,它本身的出错率已经相当低了,大概只有不到1%, 不要问我为什么,我也是从别的书上看来的,只不过现在已经记不得书名了,呵呵...
vcsongs 2002-10-15
  • 打赏
  • 举报
回复
^=^ 说的就是应用层的协议. 大家一般都怎么定义应用层的协议...
vcsongs 2002-10-15
  • 打赏
  • 举报
回复
以前做过很多控制的项目. 需要自己确定协议. 这里的协议有纠错的用处, 在TCP中, 底层给你保证了正确的传输. 所以就可以不必考虑那么多了. 但UDP中, 比如传一些多媒体数据. 数据前要附加一个自己的包头. 这些都是我所说的协议...
vcsongs 2002-10-15
  • 打赏
  • 举报
回复
举个例子, 比如POP3. 和Server连接之后, 发送的"STAT", "LIST", "QUIT"等等... 这就是我上面所说的风格. 当然是可以完全由自己确定的.

想和大家交流一下. 大家是如何确定这样的协议的. 为什么? 在实现方面有什么关系等等...

谢谢
wuxuan 2002-10-15
  • 打赏
  • 举报
回复
根据网络应用的层次,来决定所使用的协议。

应用层使用TCP与UDP协议设计自己的网络应用
传输层使用TCP协议
网络层使用IP协议。

nuaazwg 2002-10-15
  • 打赏
  • 举报
回复
什么样风格的协议?
没有这种说法。
2ndboy 2002-10-15
  • 打赏
  • 举报
回复
你的意思是说基于TCP或UDP的自定义协议吗?
我不是大明 2002-10-15
  • 打赏
  • 举报
回复
你上面用词的风格是怎么定义的??
要用连接的用TCP,无连接的用UDP,路由用IP,
dai2255 2002-10-15
  • 打赏
  • 举报
回复
一般在使用TCP协议传输文件和变长数据时需要自定义协议
协议实现后,上层的应用就不用管底层的传输细节,调用API就可以传输数据和文件
一般如果既有文件又有数据,首先发说明信息,然后发文件(分成一段一段),然后发数据,最后收确认信息.因为TCP协议不分段,所以一般有一个固定的内层格式.如包头(长度+类型)+实际数据+结束符(不一定有)
punks 2002-10-15
  • 打赏
  • 举报
回复
POP3,FTP,HTTP都是应用层的协议。
关于UDP他是面向非连接的,对于UDP数据报的可靠性只能在应用层由用户自己控制,其报文头中的检错和纠错码只能保证收到的包中的数据;如果要保证UDP数据报能够接受就必须自己定义回应包。如发送方经过一段时间没有收到回应包,应认为数据没有被收到,需要重发。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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