1、WSAStartup
int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData );wVersionRequested
⑴ wVersionRequested:一个WORD(双字节)型数值,指定了应用程序需要使用的Winsock规范的最高版本。
⑵lpWSAData 指向WSADATA数据结构的指针,用来接收Windows Sockets实现的细节。
WSAStartup,即WSA(Windows SocKNDs Asynchronous,Windows异步套接字)的启动命令。是Windows下的网络编程接口软件Winsock1 或 Winsock2 里面的一个命令(Ps:Winsock 是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口)。
2、socket
函数原型 int socket(int domain, int type, int protocol);
第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET;
第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部);
第三个参数指定应用程序所使用的通信协议。此参数可以指定单个协议系列中的不同传输协议。在Internet通讯域中,此参数一般取值为0,系统会根据套接字的类型决定应使用的传输层协议。
3、gethostname
返回本地主机的标准主机名。
#include <Winsock2.h>
int PASCAL FAR gethostname(char FAR *name, int namelen);
name: 一个指向将要存放主机名的缓冲区指针。 namelen:缓冲区的长度。
如果没有错误发生,gethostname()返回0。否则它返回SOCKET_ERROR。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码。
4、gethostbyname
返回对应于给定主机名的主机信息。
#include <winsock2.h>
struct hostent FAR *PASCAL FAR gethostbyname(const char FAR * name);
name:指向主机名的指针。
Linux版 #include <netdb.h> struct hostent *gethostbyname(const char * hostname);
返回:非空指针——成功,空指针——出错,同时设置h_errno
gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。
5、inet_ntoa
将一个IP转换成一个互联网标准点分格式的字符串。
原型: char FAR * inet_ntoa( struct in_addr in);
头文件: arpa/inet.h Winsock2.h
参数: 一个网络上的IP地址
返回值: 如果正确,返回一个字符指针,指向一块存储着点分格式IP地址的静态缓冲区;错误,返回NULL。
6、bind
将一本地地址与一套接字捆绑。
#include <winsock.h>
int PASCAL FAR bind( SOCKET s, const struct sockaddr FAR* name, int namelen);
s:标识一未捆绑套接字的描述字。 name:赋予套接字的地址。 namelen:name名字的长度。
本函数适用于未连接的数据报或流类套接字,在connect()或listen()调用前使用。当用socket()创建套接字后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未命名套接字分配一个本地名字来为套接字建立本地捆绑(主机地址/端口号)。
7、