http://c.biancheng.net/cpp/socket/
三次握手建立连接
四次握手断开连接
close函数与shutdown函数的区别
windows下
WinSock依赖系统的DLL
故第一步加载DLL
#include <winsock2.h>
#pragma comment(lib, "ws2_32.dll");
第二步初始化,指明WinSock规范的版本
int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData)
1.wVersionRequested版本信息,WORD类型相当于unsigned int,是一个整数,需要用MAKEWORD()对版本号进行转换。
MAKEWORD(1,2); //主版本号为1,副版本号为2,返回0x0201
2.WSADATA结构体
typedef struct WSADAta{
WORD wVersion; //ws2_32.dll 建议我们使用的版本号
WORD wHighVersion; //ws2_32.dll 支持的最高版本号
//一个以 null 结尾的字符串,用来说明 ws2_32.dll 的实现以及厂商信息
char szDescription[WSADESCRIPTION_LEN+1];
//一个以 null 结尾的字符串,用来说明 ws2_32.dll 的状态以及配置信息
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets; //2.0以后不再使用
unsigned short iMaxUdpDg; //2.0以后不再使用
char FAR *lpVendorInfo; //2.0以后不再使用
}WSADATA, *LPWSADATA;
使用:
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData)