我正在构建一个小程序,每天从网站上下载一次。但是,无论何时运行我的程序时,它都会根据MSDN上的列表输出“WSAConnectByName:返回错误代码为10109的FALSE”,即WSATYPE_NOT_FOUND(http://msdn.microsoft.com/zh-cn/library/ms740668%28v= VS.85%29.aspx)。我真的不明白我做错了什么。有没有人介意找到我的错误?Winsock - 与连接问题
#include <cstdio>
#include <iostream>
#include <string>
#include <boost/format.hpp>
#include <WinSock2.h>
#include <Ws2tcpip.h>
#include <windows.h>
static const TCHAR s_lpctszAddress[] = TEXT("www.google.com");
int main(int argc, char* argv[])
{
using namespace std;
using namespace boost;
WSADATA wsaData;
int iWSAStartup = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (!iWSAStartup)
{
SOCKET Socket = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
if (Socket != INVALID_SOCKET)
{
INT iSize = sizeof(s_lpctszAddress);
SOCKADDR saAddr;
DWORD dwSOCKADDRLen = sizeof(saAddr);
BOOL fConnect = WSAConnectByName(Socket, const_cast<LPWSTR>(s_lpctszAddress), TEXT("/"), &dwSOCKADDRLen, &saAddr, NULL, NULL, NULL, NULL);
if (fConnect == TRUE)
{
cout << "Success!";
}
else
{
cout << format("WSAConnectByName: returned FALSE with error code %1%.") % WSAGetLastError() << endl;
}
}
else
{
cout << format("WSASocket: returned INVALID_SOCKET with error %1%.") % WSAGetLastError() << endl;
}
}
else
{
cout << format("WSAStartup: returned %1% with error %2%.") % iWSAStartup % WSAGetLastError() << endl;
}
return 0;
}
哦,谢谢。我认为它只是应该是一个子目录或其他东西。 – 2010-12-09 00:57:37