POCO C++是一个开源的C++库,这个库的功能还挺多,包括socket,http,加密,xml解析等,这些功能可能在将来的项目中可能都需要用到,所以先行学习.(参考:http://pocoproject.org/forum/viewtopic.php?f=12&t=4844)
1.首先到http://pocoproject.org/下载源码.
2.把解压后的文件夹拖到桌面,打开终端,输入以后命令,跳转到Poco文件夹:
cd Desktop/poco-1.4.3p1/
3.输入以后命令编译出静态库:
# build for iOS device, armv6 and armv7
./configure --config=iPhone --no-tests --no-samples --omit=...
make IPHONE_SDK_VERSION_MIN=3.0 POCO_TARGET_OSARCH=armv6 -s -j4
make IPHONE_SDK_VERSION_MIN=3.2 POCO_TARGET_OSARCH=armv7 -s -j4
# build for simulator
./configure --config=iPhoneSimulator --no-tests --no-samples --omit=...
make -s -j4 cd Desktop/poco-1.4.3p1/
4.等编译好了,文件夹下应该多出一个lib文件夹
5.打开lib下面的两个文件夹,会看到编译好的.a文件,分别为使用与armv6,armv7,simulator的.a文件,也就是在我们项目使用的时候得分别加载不同文件夹下面的.a文件,所以最好是合并在一起,但这也导致合并后的.a文件比较大.
6.首先创建一个文件夹:
mkdir lib/iPhoneOS/universal
7.进行合并,可以根据项目的需要合并需要的.a文件, 我这里只想测试下socket的使用,所以只用了libPocoFoundation.a(必须的)和libPocoNet.a:
lipo -create lib/iPhoneOS/armv6/libPocoFoundation.a lib/iPhoneOS/armv7/libPocoFoundation.a lib/iPhoneSimulator/i686/libPocoFoundation.a -output lib/iPhoneOS/universal/libPocoFoundation.a
lipo -create lib/iPhoneOS/armv6/libPocoNet.a lib/iPhoneOS/armv7/libPocoNet.a lib/iPhoneSimulator/i686/libPocoNet.a -output lib/iPhoneOS/universal/libPocoNet.a
8.用xcode新建一个cocos2dx的项目(自己用cocos2dx做游戏开发^^),把刚生成的libPocoFoundation.a和libPocoNet.a拖进项目,并把.a文件需要的头文件也拖进去.拖进去后相应的目录结构为:
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketAddress.h"
using Poco::Net::SocketAddress;
using Poco::Net::StreamSocket;
9.测试在HelloWorldScene.cpp中加入头文件.
在init方法中加入:、
SocketAddress address("10.1.23.28", 60000);
StreamSocket socket;
socket.connect(address);
socket.sendBytes("Hello", 5);
char buffer[BUFFER_SIZE];
while (true)
{
if (socket.available())
{
int len = socket.receiveBytes(buffer, BUFFER_SIZE);
buffer[len] = '\0';
printf("%s\n",buffer);
}
}
当然这是简单的使用了socket,还不能实际运用到项目中,先开个头吧,具体的需要自己慢慢学习,第一次写文章,有问题请指出,谢谢.