关于socket网络编程的问题,急急急!!

我是在linux下写的服务器代码,当接收到客户端发送过来的信息后,怎样判定是一个报文还是心跳包?如果是心跳包要怎么回复消息给客户端呢?... 我是在linux下写的服务器代码,当接收到客户端发送过来的信息后,怎样判定是一个报文还是心跳包?如果是心跳包要怎么回复消息给客户端呢? 展开
 我来答
markbruce2
2012-12-21 · TA获得超过1555个赞
知道小有建树答主
回答量:925
采纳率:50%
帮助的人:630万
展开全部
心跳包协议要自己约定,并不是说固定的
当你的socket读到一段信息之后,如果符合你的心跳包格式,然后就用处理心跳包的方法去处理,如果不是则用处理业务的方法去处理。

回复客户端的也是自己约定的,没有什么是必须怎样怎样的。

不过心跳包的大小尽量的少吧,毕竟要占用服务器资源
更多追问追答
追问
也就是在用recv接收到信息之后,然后做一个内容判断吗?如果符合心跳包的话就按照心跳包的内容去回复,如果不是的话就按照业务处理的内容去回复吗?是不是回复都是用send?请别笑话啊,我才刚刚接触!!谢谢了!!
追答
recv send?,不是InputStream和OutputStream么
对,要根据得到的信息去判断用户的请求,比如说规定一个byte为数据流开始标志,第二个byte标志数据流请求类型,是心跳请求还是业务请求

只是举个例子
bd9006
2012-12-21 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
包格式中定义是否心跳。至于是否要回复,看你的系统的定义,最好是回复一下。
追问
麻烦可以稍微清楚一点吗?我才接触socket,还比较模糊。我现在遇到的问题主要是 客户端需要发送XML格式的报文给我处理,然后我返回处理后的结果给他;同时客户端又会发送心跳包过来,我该怎样判断接收的是报文还是心跳包呢?判断了才可以分类给予返回不同的信息。
追答
通俗地,整个通讯你自己定义的,你说要怎么样,那就要怎么样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hzl880201
2012-12-21 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:116万
展开全部
关键看协议, 不同的指令码不一样,根据指令码识别时什么指令,然后处理就行了,客户端和服务器端公用一套协议的打包解包代码, 每个指令都定义发送和回应两个指令码,发送的时候用发送指令, 服务器根据发送指令识别出来后, 根据回应指令的协议打包发送.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式