C++ socket 怎么识别数据包
答案:2 悬赏:70
解决时间 2021-02-16 07:12
- 提问者网友:久伴不朽
- 2021-02-16 03:49
客户终端向服务器发送两类数据包,并需要服务器给予相应的应答报文,在一个线程处理函数里面怎么识别这两类报文数据包,并给予回应
最佳答案
- 二级知识专家网友:错过的是遗憾
- 2021-02-16 04:49
数据包是源源不断的数据流,并没有什么记号,对于这样的应用程序,
编程员必须为数据包自行定义一个简单的对话协议,用以标识数据的
含义,初学者往往为这件事所困惑。
象木.马,它都有自已的服务端/客户端对话协议,才能实现复杂的
交互操作。
网络的第五层就是对话协议层,象IE的HTTP,EMAIL的SMTP/POP3
都有统一的标准对话协议。 所以,你必须为你自已的应用也定义一个
简单的对话协议。程序围绕这个对话协议进行设计。
编程员必须为数据包自行定义一个简单的对话协议,用以标识数据的
含义,初学者往往为这件事所困惑。
象木.马,它都有自已的服务端/客户端对话协议,才能实现复杂的
交互操作。
网络的第五层就是对话协议层,象IE的HTTP,EMAIL的SMTP/POP3
都有统一的标准对话协议。 所以,你必须为你自已的应用也定义一个
简单的对话协议。程序围绕这个对话协议进行设计。
全部回答
- 1楼网友:输掉的尊严
- 2021-02-16 04:56
socket数据包怎么定义以及应用?
你是准备自己组织socket的数据,自己实现和处理协议?那你准备从哪一层开始?ip层?更低层?
具体的数据组织的话,你需要搜下ip数据包的是如何封装的,还有tcp和udp的数据包的组织。
为什么不用bsd的api ???
你搜索下linux socket,保证出现一大堆的源代码。
一般都是socket在ip层上封装成tcp或者udp的包。
至于具体的发送过程,自然还是有api实现好了的,你只需要告诉api你要传递的数据位置,以及长度,剩下的就不用你操心了。
接收也是一样的。。。所以你常常需要做的就是指定协议,指定地址,拷贝数据。其他的变化就看你对协议的理解和你自己的需求了。
书的话:<实战linux socket编程>
一般的稍微全面的linux编程书也会说到网络编程,必然会提到socket。
需要了解细节的话,去看
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯