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