最近要做一个手机应用,需要支持多种平台,WM,WP7,Android,iPhone,(MeeGo)etc.
需要和服务器通信,服务器端使用微软的.net实现,因为公司目前的人手几乎都是搞.net的。
而手机端的实现就各不相同了……
要求的几个功能我发觉跟QQ很像,所以我在标题上写上了“类似QQ”。
0,最重要的一点,客户端跨平台,所以集中在协议定制上
1,信息加密,而不是像MSN那样明文传输内容
2,支持登录认证
3,主要是和服务器通信,暂时不考虑客户端对客户端(这点和QQ不太一样)
4,支持文本传输,二进制流传输,较大文件传输等,且效率较高
5,精简,不要引入大规模的库
看了下ACE,Boost,发现都太庞大了点,代码也不是很好理解,更重要的,并非所有平台都支持,据说QQ用的是自己的协议,使用TEA加密,所以难度不高的话很想自己实现一套,用RSA/AES之类实现加密等。谁有这方面的经验的,请分享一下,谢谢各位。
BTW:希望能得到“经验分享”而不是ctrl+c ctrl+v,如果对我的项目帮助较大,我继续加分。
------解决方案--------------------
你所说的几个功能需求,我觉得并没有什么技术上难以逾越的障碍。客户端跨平台,这方面的开发思想已经不胜枚举了,基于 .Net 的 SOAP协议就可以借鉴,虽然, SOAP有点繁琐。
如果抛开SOAP协议,建议也可以采用HTTP协议,因为ANDROID上已经封装了 apache 的HTTP CLIENT库了,不需要像SOAP那样采用第三方库或者重复开发。
你所罗列的几点,支持加密,认证,文本和二进制流传输,实际都已经被HTTP协议实现了。
建议LZ就考虑用HTTP协议吧。
------解决方案--------------------
很明显楼主是要用tcp/ip协议来搞,服务器端用.net了,就不要考虑ace和asio了啊,这都是c++的库。
每个手机端(手机平台)用相应的工具和语言开发。
协议,完全可以自定义啊。
lz有过socket开发的经验,这个应该很容易搞定~~~
------解决方案--------------------
还是用标准的即时通信协议吧,这样以后也可以和其他软件兼容。
文件传输其实也可以自己定义一套协议啊,这个好像没什么标准的协议,ftp不算。