实习周记IV
来源:互联网 发布:cfve卡枪软件 编辑:程序博客网 时间:2024/04/28 10:41
2014年12月24日 深圳
今天是西方的平安夜,相信家乡的朋友们都在狂欢。
做网络消息模拟器已经三天了,前两天大致了解了C++的网络通讯、多线程和MFC内容,今天就开始着手实现网络消息的配置解析了。
用什么作为配置文件的载体呢?当然是看内容有什么了,一般游戏的通讯内容基本相似,都是由两个short类型作为消息头,用来区别消息类型。网络传输内容如下:
MainType:(short类型)
SubType:(short类型)
Type1:(支持的类型)
Type2:(支持的类型)
...
用Json?还是算了,可读性不高,毕竟策划要看;
用INI?简单易懂,清晰可读。只是不支持嵌套;
用XML?描述性内容过多。不过支持嵌套,可读性较强。
选来选去我将XML做为网络消息的配置文件,XML对自己来说并不陌生,玩Android时最依赖它了。XML的开源解析库并不少,由于自己的项目依赖于cocos2d-x静态库,且cocos2d-x已经包含了开源的tinyxml2,那就不用在费工夫选XML的解析工具了。
在解析配置文件时出现了中文乱码问题,查找了相关文档知道,tinyxml2支持解析ANSI和UNICODE编码文件,自己文件本来就是ANSI,所以不是tinyxml2的问题。
查看VS的项目属性发现,我的VS项目编码为UNICODE,而tinyxml2解析出来的Char*是ANSI编码,二者转换必然乱码。
出问题的代码:
CString csMainName;csMainName.Format("%s",mainName);CString csMainType;csMainName.Format("%s",mainType);
解决方式如下:
USES_CONVERSION;CString csMainName = A2W(mainName);CString csMainType = A2W(mainType);利用系统定义好的宏,即可正确将char*转换成CString类型,并保证任何字符集下不出现乱码问题。
2014年12月25日 深圳
圣诞节,印象里的圣诞的时候都会下雪,今年是看不到雪了,南方天气太奇葩。
昨天做了XML解析部分,今天就该实现数据传输了。
我采用winsocket的Socket搭建服务器,具体代码网上有很多可查,过程中也没发现什么问题。
需要注意的是,winsocket的accept和recv函数都会阻塞线程,所以应该确保在调用accept时,已经启动了子线程,不然会界面会卡死。
学无止境,加油吧。
- 实习周记IV
- 2015年实习心情周记IV
- 第二周实习记
- 第三周实习记
- 实习周记I
- 实习周记II
- 实习周记III
- 实习周记V
- 实习周记VI
- 实习周记(一)
- 暑假实习周记①
- IV
- 2015年实习心情周记I
- 2015年实习心情周记II
- 2015年实习心情周记III
- 实习周记(附):学习笔记
- 实习第一天---记SunFlame实习
- 第一周实习记
- 关于链表的总结(一套链表定义)
- SQLiteOpenHelper简介
- bzoj1486: [HNOI2009]最小圈 二分+dfs判环
- 解决CentOS系统的分辨率不合适的问题
- python监控脚本的编写
- 实习周记IV
- 【CentOS】如何在线安装pcre
- 在java中实现zip压缩文件的具体实现
- 如何优化网页的打印样式?
- bzoj1026: [SCOI2009]windy数 数位dp
- 敌兵布阵
- 简单使用achartengine绘制折线图
- BZOJ 3238 AHOI 2013 差异 后缀数组+单调栈
- 2014,那一年我们相守过的12月下旬流淌青春岁月的足迹