测试ACEClient提示WSAStartup失败
提示内容:ACE_INET_Addr::ACE_INET_Addr: localhost: 应用程序没有调用 WSAStartup,或者 WSASt
artup 失败。
connect: 应用程序没有调用 WSAStartup,或者 WSAStartup 失败。
请按任意键继续 . . .
估计是要加载一个启动代码,不过在书上没有找到相关的东西,只好来这儿问问了。
原代码如下:
// testACEClient.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Connector.h"
#include "ace/Log_Msg.h"
int _tmain(int argc, _TCHAR* argv[])
{
ACE_INET_Addr srvr (50000,ACE_LOCALHOST);
ACE_SOCK_Connector connector;
ACE_SOCK_Stream peer;
if (-1 == connector.connect(peer, srvr))
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("connect")),1);
}
int bc;
char buf;
peer.send_n ("uptime\n",7);
bc = peer.recv (buf,sizeof(buf));
write (1,buf,bc);
peer.close();
return 0;
}
// 应用程序没有调用 WSAStartup 这时ACE以后的代码,在windows上它最终还是要调用windows的网络栈API的,我没有遇到过你的问题。我感觉是不是你应该重新编译一下ACEd.dll,在config.h中修改一下,按windows上的ACE编译方法来编译,然后link到你的程序中,再试试 _tmain -> ACE_TMAIN,或者在最开始调用ACE::init();
页:
[1]