前一段时间看了ACE的介绍以及按照教程完成了在win32下的编译工作,但老搞不清楚怎么用ace搭建一个简单的 c/s模型出来。今天终于找到了方法,这里和大家一起分享。
/
/// Server Side /
#include "stdafx.h"
#include <ace/ACE.h>
#include <ace/SOCK_Acceptor.h>
#include <ace/SOCK_Stream.h>
#include <string>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ACE::init();
string str;
str.resize(sizeof("hello baby"));
ACE_INET_Addr peer_addr(5050,"127.0.0.1");
ACE_SOCK_Stream peer_stream;
ACE_SOCK_Acceptor peer_acceptor;
peer_acceptor.open(peer_addr);
while(1)
{
peer_acceptor.accept(peer_stream);
peer_stream.recv((void*)str.c_str(),str.length());
cout<<"I got message!"<<str<<endl;
}
ACE::fini();
return 0;
}
/
/// Client Side /
#include "stdafx.h"
#include <ace/ACE.h>
#include <ace/INET_Addr.h>
#include <ace/SOCK_Connector.h>
#include <ace/SOCK_Stream.h>
#include <string>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ACE::init();
string str = "HI my babay!";
ACE_INET_Addr peer_addr(5050,"127.0.0.1");
ACE_SOCK_Stream peer_stream;
ACE_SOCK_Connector peer_connector;
peer_connector.connect(peer_stream,peer_addr);
peer_stream.send(str.c_str(),str.length());
ACE::fini();
return 0;
}
//注意:本程序在VS2005 下测试通过 //
///
相比之下,确实是比winsock精炼了许多,但听说其更强大的部分远远不止这些,我还要继续努力 @*_*@