MFC socket编程,我在客户端要发送两种类型的数据到服务器端,服务怎么才能辨别出是哪一类数据???

MFCsocket编程实现一个聊天室,在客户端我要发送两类数据:一类数据是提示服务器客户上线,一类数据是客户的聊天内容。在服务器端我将发送这两类数据的操作分别放在不同的按... MFC socket编程实现一个聊天室,在客户端 我要发送两类数据 :一类数据是提示服务器客户上线, 一类数据是客户的聊天内容 。 在服务器端我将发送这两类数据的操作分别放在不同的按钮的消息响应函数中,从而发到服务器端。但是现在不知道该怎么让服务器端辨别出数据类型的不同?????有什么方法可以让服务器端辨别出是哪一类数据??? 展开
 我来答
icelbja
2013-12-09 · TA获得超过138个赞
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:150万
展开全部
你可以把数据的第一位作为标志位,比如第一位如果是0x01表示有人上线然后第二位开始是数据,如果第一位是0x02表示发送的信息然后第二位开始是数据。
更多追问追答
追问
我现在还有个问题,我现在设定的数据类型是CString,下面我该怎么在服务器端把接收到的数据的第一位取出来进行判断呢,用到什么函数呢?!?然后显示的时候,又该怎么把这个标志位去除掉,从而正确的显示???
追答
很多方法啊,可以用Cstring的下标运算str[0](等介于*str),Cstring.GetBuff()函数返回一个LPTSTR指针就是指向起始地址的(调用getbuff后记得释放),*str.getbuff()就取出了第一个字节。还有一个问题,如果是vc2003以上编译器默认编码是Unicode编码Cstring的一个字符是占2个字节的,Cstring* 这个指针等于LPCTSTR指针这两个指针都是指向宽字符的(2字节),str.GetBuff()返回LPTSTR也是指向宽字符的,这个你要注意了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuuo1992
2013-12-09
知道答主
回答量:5
采纳率:0%
帮助的人:6557
展开全部
可以定义数据头信息,用数据的前几位做为类别标识。举个例子,数据的第一位为1,表示是第一类数据,第一位为2,表示是第二类数据。用一个if语句判断一下就可以了
追问
你得意思我明白了,但是我还有个问题,就是现在我把数据的类型定义为CString类型,如果我将数据的第一位设为标志位,我在服务器端用什么函数取出第一位数呢?!然后显示的时候又怎么把第一位数据去除掉,从而显示后面的数据呢?!
我的问题解决了,谢谢你得回答了,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式