首页 > 其他 > 详细

智勇三国架构设计总结书

时间:2014-02-25 14:48:45      阅读:323      评论:0      收藏:0      [点我收藏+]

        上周,在调试cocos2d-x内置的telnet服务器CCConsole时发现,CCConsole在windows上运行时可以正常启动,但只要一连接telnet客户端就会crash,出错的位置在write()函数,是一个Assert错误,提示file handler 不能大于32;但是,在mac,ios,android(linux还没有测试)都是OK的。

    在vs上单步跟了几遍,没看出什么问题,看来得另想办法,我知道winsock的api和unix socket有一些区别,所以考虑用winsock重写一个telnet服务器。先查一下msdn,看看Winsock的函数列表...等等,好像没有write()/read()函数....只有send()/recv(),看来问题很有可能出在这里...把所有的write/read改成send/recv,在windows下测试,可以正常启动telnet了,也可以发命令了,但退出的时候还是会崩溃,出错的位置是close(),原因和前面一样,winsock没有close()函数,要用closeSocket()来关闭socket连接。

    问题搞定了,但要吐槽一下winsock,为什么不完全兼容unix socket的api呢?不但没有在编译的时候提示,运行时出错也完全没有可用的提示!!太坑了



智勇三国架构设计总结书

原文:http://blog.csdn.net/he_zhidan/article/details/19829317

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!