VC 中网络编程的常用函数及 UDP,TCP 协议编程步骤
1.SOCKET 类型
SOCKET 是 socket 套接字类型,在 WINSOCK2.H 中有如下定义:
typedef unsigned intu_int;
typedef u_intSOCKET;
可知套接字实际上就是一个无符号整型,它将被 Socket 环境管理和使用。套
接字将被创建、设置、用来发送和接收数据,最后会被关闭。
2.WORD 类型、MAKEWORD、LOBYTE 和 HIBYTE 宏
WORD 类型是一个 16 位的无符号整型,在 WTYPES.H 中被定义为:
typedef unsigned short WORD;
其目的是提供两个字节的存储,在 Socket 中这两个字节可以表示主版本号和
副版本号。使用 MAKEWORD 宏可以给一个 WORD 类型赋值。例如要表示
主版本号 2,副版本号 0,可以使用以下代码:
WORD wVersionRequested;wVersionRequested =
MAKEWORD( 2, 0 );
注意低位内存存储主版本号 2,高位内存存储副版本号 0,其值为 0x0002。
使用宏 LOBYTE 可以读取 WORD 的低位字节,HIBYTE 可以读取高位字节。
3. WSADATA 类型和 LPWSADATA 类型
WSADATA 类型是一个结构,描述了 Socket 库的一些相关信息,其结构定义
如下:
typedef struct WSAData {
WORDwVersion;
WORDwHighVersion;
charszDescription[WSADESCRIPTION_LEN+1];
charszSystemStatus[WSASYS_STATUS_LEN+1];
unsigned shortiMaxSockets;
unsigned shortiMaxUdpDg;