TCP数据包的接收与发送问题

风吹草低现羊牛 2010-10-11 08:20:45
以前做的C/S都是直接发送的是流..SOCK_STREAM这种方式发送的...

现在我想用自定义数据包的,发送数据包.希望大家指点一下...什么书针对这个比较有针对性.同时我也正开始看TCP/IP第三卷...

希望给个例子..开个好头...麻烦吧友咯...谢谢!!
...全文
340 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjiawei007 2010-10-13
  • 打赏
  • 举报
回复
TCP/IP 里介绍的是一些成熟的协议,硬看不容易的。
chenjiawei007 2010-10-13
  • 打赏
  • 举报
回复
封装协议?

发送时封装结构体,

接收时解结构体,根据结构体中内容进行操作

还是用SOCKET啊,不过是包数据是 协议+数据,你还是用SOCKET吧,只是做下协议,

还是用SOCK_STREAM或者SOCK_DGRAM

封装协议时很有讲究的,RTP SMTP 可以先去看看人家的协议,不过单纯一人写协议,也只能写写简单的,

真的复杂的协议比较困难
翅膀又硬了 2010-10-13
  • 打赏
  • 举报
回复
发送不用特殊处理,接收一包数据分成两次recv,先收长度,判断一下长度是否合理。再根据长度收完剩下内容。
然后根据包编号解析内容,处理
  • 打赏
  • 举报
回复
再次强大的人工置顶....
SpiritMFC 2010-10-13
  • 打赏
  • 举报
回复
TCP 本身也是基于流传递的。

一段数据流发送给服务器,服务器端要进行解析的。
可以通过自定义协议来解析。
其中涉及到很多,包括socket模型,数据包解析,粘包问题等等。

可以看《windows网络编程》参考下。
翅膀又硬了 2010-10-12
  • 打赏
  • 举报
回复
前两个字节是长度,然后是包编号,然后是内容,基本都这样弄
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shenyi0106 的回复:]
你不会是自己想写个协议驱动吧?
如果不是,那传输层就两个传输协议,TCP和UDP
这个MS都给你写好了,你只需要在它们之上封装协议即可
[/Quote]

我不写驱动.只是自定义协议而已...
shenyi0106 2010-10-12
  • 打赏
  • 举报
回复
你不会是自己想写个协议驱动吧?
如果不是,那传输层就两个传输协议,TCP和UDP
这个MS都给你写好了,你只需要在它们之上封装协议即可
  • 打赏
  • 举报
回复
人工置顶一次...
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yunchao630 的回复:]
前两个字节是长度,然后是包编号,然后是内容,基本都这样弄
[/Quote]

这个我知道,但是具体如何实现,发送和接收应该怎么处理..- -!!

强大的人工置顶..
傻X 2010-10-11
  • 打赏
  • 举报
回复
我这里有我当初学习TCP/IP SOCKET时候用的例子,还有自组织的协议,我刚上传了资源,貌似立刻看不到,如果楼主要的话,发我短消息。
ayw215 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xianzq888 的回复:]

引用 1 楼 visualeleven 的回复:
和你直接发送数据差不多,自己封装应用层协议,接收端根据该协议进行接收解析数据


我就是想自己做...以前以为自己了解HTTP的运行机制...但是后来自己做了个HTTP服务器后才发现很多知识要自己亲自动手才知道应该怎么做.以及运行机制...所以喃..想自己做下...
[/Quote]
加油吧a
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 visualeleven 的回复:]
和你直接发送数据差不多,自己封装应用层协议,接收端根据该协议进行接收解析数据
[/Quote]

我就是想自己做...以前以为自己了解HTTP的运行机制...但是后来自己做了个HTTP服务器后才发现很多知识要自己亲自动手才知道应该怎么做.以及运行机制...所以喃..想自己做下...
Eleven 2010-10-11
  • 打赏
  • 举报
回复
和你直接发送数据差不多,自己封装应用层协议,接收端根据该协议进行接收解析数据

18,356

社区成员

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

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