#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用来标识被应用程序所建立或使用的对象的唯一整数