收录日期:2018/06/20 09:18:02 时间:2016/05/20 21:31:29 标签:网络通信
1、传输层使用UDP协议
2、在UDP之上加了个可靠通信协议
请问:IP报文,UDP报文等的报头是如何与报文数据结合起来的?又是如何区分的?程序实现时是怎么做的呢?我要实现的应用层通信协议其报头该如何在程序中表示啊?

高分相送!
应用层协议不需要考虑报文的结构,报文结构对应用层来说应该是透明的。

用socket编程的话,recv(),recvfrom()接收的数据就是报文数据。
应用层协议可用socket编程实现,
因此可看socket编程资料
谢谢上面两位高手

我正考虑用socket编程实现
但有以下问题:1、我应用层协议也有个首部,即应用层首部,并且这个首部有几十个字段,这些字段都是按比特来计算的,难点在于,前一个字段的值可以决定后面的字段是否在首部中出现。这该如何实现呢?我想开个临时缓冲区,将首部字段一个字节一个字节的处理,这样可不可以啊?有没有这方面的例子呢?
    

谢谢!
前一个字段的值可以决定后面的字段是否在首部中出现
--------------------------------------------------

有意义吗?

参考一下IP、TCP包的结构吧
UDP包你发送的是什么形势,接收到的就是什么形式,前提是不要超过UDP的最大报文段,也就是说recvfrom接收回来的数据包是完整的,数据包有个大小,你按照大小将接收回来的缓存一个字节一个字节的处理就行
这就是你自己的数据的问题了,完全看你如何设计。
与TCP、UDP无关
当然可以。

参考其他协议(ip)扩展头的方法或用有限状态机的思想。
itbst(itbst) ( )说的很好,点出了关键
请问哪里能找到类似QQ,MSN的程序呢?请发到cypher_guo@163.com,要源码。例子一到即结贴。多谢itbst(itbst)等大侠。