ACE Beginner

ACE beginner


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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值