socket中该如何封装message

xiaoyaoxiaonizi xiaoyaoxiaonizi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,最近在写一个聊天程序,能够简单的文字对话。现在在完善周边功能,比如登录登出,发送附件,检验掉线等。现在遇到一个问题,就是随着message类型增多,服务器和客户端的逻辑也越来越复杂,所以想把message单独封装成一个类。我的想法是server类只负责数据包的传输,数据的解析工作最好全部由message类完成。这样既降低了server类的复杂度,后期新增新的消息类型也比较容易添加。
我想使用继承来实现message类,比如基类为

class Messagebase
{
void *GenerateMsg();//这里该如何传入数据,因为每个子类需要的数据类型都不一样,所以没法写出一个通用的函数。
void ParaseMsg(void *data, int len);
}

其中我比较头疼的是数据在server和message类之间如何传递,为了实现上述类中的函数统一性,最好在类设计上不要暴露数据细节,最好是通用的。
大家有没有好的想法,请告诉我,或者你们以前是怎么去做的,我们一起讨论讨论吧。
要是能得到灵感,比有重赏。
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
xiaoyaoxiaonizi
C++ 语言 65,214 成员 250,514 内容