#include<Winsock2.h> #pragma comment(lib,"ws2_32.lib")
Winsock编程接口是微软提供的api
调用winsock函数之前必须装载winsock库,否则会返回socket_error
调用wsaStartup函数初始化wsa
int WSAStartup(WORD wVersionRequested, //指定winsock加载winsock库的版本 LPWSADATA lpWSAData //保存WSAStartup函数返回的Winsock库的版本信息 ); //此函数调用成功返回0,失败可调用WSAGetLastError函数确定原因 WSADATA wsaData; WORD sockVersion=MAKEWORD(2,2); if(WSAStartup(sockVersion,&wsaData)!=0) return 0;
Socket函数的原型:
SOCKET socket( int af, //用来指定套接字使用的地址格式,这里只能用AF_NET int type, //指定套接字的类型 int protocol //指定协议类型 );
函数调用成功返回一个新的socket句柄,失败返回INVALID_SOCKET
套接字类型:
SOCK_STREAM:流套接字,使用TCP提供有连接的可靠传输
SOCK_DGRAW:数据包套接字,使用UDP提供无连接的不可靠的传输
SOCK_RAW:原始套接字
协议类型:使用TCP通信用TCP,使用UDP通信用IPPROTO_UDP
句柄:一个long型的数据,它是windows用来标识被应用程序所建立或使用的对象的唯一整数