作者:小明 来源:C++博客   酷勤网收集 2007-11-13

摘要
  1.download ACE;2.build ACE in Visual Studio,generate ACE.lib(dll)[for release] & ACEd.lib(dll)[for debug];3.create a empty project named: ACETest 4.add ACE path into Project;5.create a file(hello.cpp);6.build & execute

1.download ACE from: www.cs.wustl.edu/~schmidt/ACE.html

2.build ACE in Visual Studio,generate ACE.lib(dll)[for release] & ACEd.lib(dll)[for debug]

3.create a empty project named: ACETest

4.add ACE path into Project Include Path and add ACE/lib into project lib path

5.create a file(hello.cpp)

 

#ifdef _DEBUG
#pragma comment(lib,
"ACED.lib")
#else
#pragma comment(lib,
"ACE.lib")
#endif

#include 
<ace/OS_main.h>
#include 
<ace/ACE.h>
#include 
<ace/Log_Msg.h>
#include 
<ace/SOCK_Connector.h>

int main(int argc, char *argv[])
{
 ACE_INET_Addr addr(
1500,"127.0.0.1"); //remote address
 ACE_SOCK_Connector con; // connetor for socket client
 ACE_SOCK_Stream stream; // stream is for socket read/write

 
if(con.connect(stream,addr)==-1//connect to remote address
 {
  ACE_DEBUG ((LM_DEBUG,
   ACE_TEXT (
"(%P|%t) %p\n"),
   ACE_TEXT (
"connection failed")));
  
return 1;
 }

 
const char msg[] = "Hello,ACE!";

 stream.send_n(msg,
sizeof(msg)); // send_n function send exactly n bytes

 
char buffer[1024= {0};

 
if(stream.recv(buffer,sizeof(buffer)-1)==-1// just call socket recv
 {
  ACE_DEBUG ((LM_DEBUG,
   ACE_TEXT (
"(%P|%t) %p\n"),
   ACE_TEXT (
"recv failed")));
  
return 1;
 }
 ACE_DEBUG ((LM_DEBUG,
  ACE_TEXT (
"(%P|%t) recv:%s\n"),
  buffer));

 
if (stream.close () == -1//close the connection
 {
  ACE_ERROR ((LM_ERROR,
   ACE_TEXT (
"(%P|%t) %p\n"),
   ACE_TEXT (
"close")));
  
return 1;
 }

 
return 0;
}


6.build & execute

来自:http://www.cppblog.com/sandy/archive/2005/11/24/1281.html

分类: C++名库 编程语言

上一篇:Ogre3D嵌入Qt框架 之 小结   下一篇:ACE 示例1 --- Time Server