找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3739|回复: 1

ACE不自动初始化Winsock ?

[复制链接]
发表于 2008-1-7 20:53:20 | 显示全部楼层 |阅读模式
  1. #ifdef _DEBUG
  2. #pragma comment(lib,"ACED.lib")
  3. #else
  4. #pragma comment(lib,"ACE.lib")
  5. #endif
  6. #include <ace/OS_main.h>
  7. #include <ace/ACE.h>
  8. #include <ace/Log_Msg.h>
  9. #include <ace/SOCK_Acceptor.h>
  10. #include <ctime>
  11. int main(int argc, char *argv[])
  12. {
  13.     ACE_INET_Addr addr(1500);
  14.     ACE_SOCK_Acceptor server;
  15.     ACE_SOCK_Stream stream;
  16.     if(server.open(addr)==-1)
  17.     {
  18.         ACE_DEBUG ((LM_DEBUG,
  19.             ACE_TEXT ("(%P|%t) %p\n"),
  20.             ACE_TEXT ("bind failed")));
  21.         return 1;
  22.     }
  23.     char msg[15];
  24.     while(server.accept(stream)!=-1)
  25.     {
  26.         ACE_INET_Addr raddr;
  27.         stream.get_remote_addr(raddr);
  28.         ACE_DEBUG ((LM_DEBUG,ACE_TEXT ("(%P|%t) connect:%s %d\n"),raddr.get_host_addr(),raddr.get_port_number()));
  29.         //get current time
  30.         time_t nTime=0;
  31.         time( &nTime ) ;
  32.         tm *tm1 = localtime( &nTime ) ;
  33.         sprintf(msg,"%04d%02d%02d%02d%02d%02d",tm1->tm_year+1900,tm1->tm_mon+1,tm1->tm_mday,tm1->tm_hour,tm1->tm_min,tm1->tm_sec);
  34.         stream.send_n(msg,sizeof(msg));
  35.         stream.close();
  36.     }
  37.     server.close();
  38.     return 0;
  39. }
复制代码
这段代码执行以后返回的是
(2696|292) b: WSA Startup not initialized
 楼主| 发表于 2008-1-7 20:53:27 | 显示全部楼层
在程序的开始加入ACE::init();

在程序的结束加入ACE::fini();

或把int main(int argc, char *argv[]) 替换为 int ACE_TMAIN(int argc, ACE_TCHAR *argv[]).
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 06:57 , Processed in 0.030759 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表