一、需要理解的协议
1.PPP:点对点协议(Point to Point Protocol)。点对点协议(PPP)为在点对点连
接上传输多协议数据包提供了一个标准方法。
2.ARP:地址解析协议(address resolution Protocol)。ARP实现通过IP地址得知
其物理地址。
3.RARP:反向地址转换协议(RARP:Reverse Address Resolution Protocol)。反
向地址转换协议(RARP)允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其IP地址。
4.IP:IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网
协”,也就是为计算机网络相互连接进行通信而设计的协议。
5.ICMP:ICMP是(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
6.IGMP:Internet Group Management Protocol(Internet组管理协议)。Internet
组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于IP主机向任一个直接相邻的路由器报告他们的组成员情况。
7.TCP:Transmission Control Protocol传输控制协议TCP是一种面向连接的、可
靠的、基于字节流的传输层(Transport layer)通信协议。
8.UDP:User Datagram Protocol的简称,中文名是用户数据包协议,是OSI参考
模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
9.HTTP:超文本传送协议(hypertext transport protocol)。一种详细规定了浏览
器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
10.DNS:计算机域名系统(Domain Name System或Domain Name Service)的缩写,
它是由解析器和域名服务器组成的。域名系统为Internet上的主机分配域名地址和IP地址。
11.SMTP:(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由
源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
12.FTP:(File Transfer Protocol,FTP)是TCP/IP网络上两台计算机传送文件的协
议。
13.POP3:(Post Office Protocol3)即邮局协议的第3个版本,它是规定个人计算机
如何连接到互联网上的邮件服务器进行收发邮件的协议。
14.TFTP:(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的
一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
二、基本套接字编程接口函数
1.WSAStartup:应用程序或DLL只能在一次成功的WSAStartup()调用之后才能调
用进一步的Windows Sockets API函数.
原型:intPASCAL FAR WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);
参数:wVersionRequested Windows Sockets API提供的调用方可使用的最
高版本号.高位字节指出副版本(修正)号,低位字节指明主版本号.
lpWSAData指向WSADATA数据结构的指针,用来接收Windows Sockets 实现的细节
返回值:0成功.
以下值代表错误:
WSASYSNOTREADY指出网络通信依赖的网络子系统还没有准备好.
WSAVERNOTSUPPORTED所需的Windows Sockets API的版本未由特定的Windows Sockets实现提供.
WSAEINVAL应用程序指出的Windows Sockets版本不被该DLL支持.
2.closesocket:关闭一个套接口。
原型:int PASCAL FAR closesocket(SOCKET s);
参数:s:一个套接口的描述字。
返回值:0成功.
以下值代表错误:
WSANOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。
WSAENETDOWN:WINDOWS套接口实现检测到网络子系统失效。
WSAENOTSOCK:描述字不是一个套接口。
WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。
WSAEINTR:通过一个WSACancelBlockingCall()来取消一个(阻塞的)调用。
WSAEWOULDBLOCK:该套接口设置为非阻塞方式且SO_LINGER设置为非零
超时间隔。
3.WSACleanup:中止Winsock2DLL(Ws2_32.dll)的使用。释放WinSock实现分
配给应用程序的系统资源。
原型:int PASCAL FAR WSACleanup(void);
参数:无
返回值:成功返回0
4.socket:创建一个能够进行网络通信的套接字。
原型:int socket(int domain,int type,int protocol);
参数:第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协
议族,该参数置AF_INET;
第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部);
第三个参数指定应用程序所使用的通信协议。
返回值:成功返回新创建的套接字的描述符,失败返回INVALID_SOCKET。5.send:经套接字传送消息
原型:ssize_t send(int s,const void*msg,size_t len,int flags);
参数:
第一个参数指定发送端套接字描述符;
第二个参数指明一个存放应用程式要发送数据的缓冲区;
第三个参数指明实际要发送的数据的字节数;