Window网络编程之Winsock(一) Winsock的头文件可库 Winsock有两个主要版本,即Winsock 1和Winsock 2,两者都能在除了Windows CE外(Winsock CE 只支持Winsock 1)的所有Window平台上运行。开发Window网络程序时, 把WINSOCK2。H包含到应用程序中,对应的连接库是WS2_32.lib库。代码如下: #include <winsock2.h> #pragma comment (lib,"ws2_32.lib") 开始初始化Winsock库,调用WSAstartup(…) int WSAStartup( WORD wVersionRequested, //Winsock库的版本号,可以用MAKEWOR(2,2) LPWSADATA lpWSAData //一个加载库版本的有关信息 ); 在使用Winsock接口编好程序后应该调用WSACleanup函数,这个函数主要释放所有由Winsock分配的资源,并取消这个应用程序挂起的Winsock调用。 int WSACleanup(void); 现在就可以写个简单的Winsock网络程序框架了: #include <cstdlib> #include <iostream> #include <Winsock2.h> #pragma comment(lib,"ws2_32.lib") using namespace std;
int main(int argc, char *argv[]) { WSADATA wsaData; //初始化Winsock版本2.2 int ret = WSAStartup(MAKEWORD(2,2),&wsaData); if(ret != 0) { //注意:因为Winsock没有加载,所以我们不能使用WSAGetLastError //来确定导致故障的特定错误。我们只能根据返回状态判断 cout<<"WSAStartup failed with error "<<ret<<endl; WSACleanup(); return 0; } //这里就是我们创建socket要连接或者监听代码了 //...... //如果程序结束调用 WSACleanup WSACleanup(); system("PAUSE"); return EXIT_SUCCESS; }
|