winsock
在开始编程前记住以下2句话:
凡是在link里报告error LNK2001: unresolved external symbol __imp__WSAGetLastError@0之类的都是没有导入lib。。或者是只添加了h到工程,而没有把cpp添加到工程中。
WSAStartup (0x0002, &wd);
#pragma comment(lib,"Ws2_32.lib")
要使用Winsock,首先必须调用WSAStartup,最后结束时不要忘了调用WSACleanup。要获取IP地址,首先必须得到机器的主机名(host name),调用gethostname就可以实现,有了主机名,接下来调用gethostbyname来获取包括IP地址在内的更多的主机信息。gethostbyname返回一个指向hostent数据结构的指针,这个结构在<winsock.h>文件中是这样定义的:
// 来自winsock.h
struct hostent {
char FAR * h_name; /* 正式的主机名*/
char FAR * FAR * h_aliases; /* 别名列表*/
short h_addrtype; /* 主机地址类型*/
short h_length; /* 地址长度*/
char FAR * FAR * h_addr_list; /* 地址清单*/
};
API函数MAKEWORD(2,0)
其原型为:
WORD MAKEWORD(
BYTE bLow, // low-order byte of short value
BYTE bHigh // high-order byte of short value
);