网络编程常用的协议和函数

上传人:xzh****18 文档编号:33872133 上传时间:2018-02-18 格式:DOCX 页数:9 大小:29.41KB
返回 下载 相关 举报
网络编程常用的协议和函数_第1页
第1页 / 共9页
网络编程常用的协议和函数_第2页
第2页 / 共9页
网络编程常用的协议和函数_第3页
第3页 / 共9页
网络编程常用的协议和函数_第4页
第4页 / 共9页
网络编程常用的协议和函数_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《网络编程常用的协议和函数》由会员分享,可在线阅读,更多相关《网络编程常用的协议和函数(9页珍藏版)》请在金锄头文库上搜索。

1、一、 需要理解的协议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(网络之间互连的协

2、议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。5. ICMP:ICMP 是(Internet Control Message Protocol)Internet 控制报文协议。它是 TCP/IP 协议族的一个子协议,用于在 IP 主机、路由器之间传递控制消息。6. IGMP:Internet Group Management Protocol (Internet 组管理协议)。Internet 组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于 IP 主机向任一个直接相邻的路由器报告他们的组成员情况。7. TCP: Transmission Cont

3、rol Protocol 传输控制协议 TCP 是一种面向连接的、可靠的、基于字节流的传输层(Transport layer)通信协议。8. UDP: User Datagram Protocol 的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。9. HTTP:超文本传送协议(hypertext transport protocol)。一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。10. DNS:计算机域名系统 (Domain Name System 或 Domain Name

4、 Service) 的缩写,它是由解析器和域名服务器组成的。域名系统为 Internet 上的主机分配域名地址和 IP 地址。11. SMTP:(Simple Mail Transfer Protocol)即简单邮件传输协议 ,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。12. FTP:(File Transfer Protocol, FTP)是 TCP/IP 网络上两台计算机传送文件的协议。13. POP3:(Post Office Protocol 3)即邮局协议的第 3 个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。14. TFT

5、P:( Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。二、 基本套接字编程接口函数1. WSAStartup:应用程序或 DLL 只能在一次成功的 WSAStartup()调用之后才能调用进一步的 Windows Sockets API 函数.原型:intPASCAL FAR WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData );参数:wVersionRequested Window

6、s Sockets API 提供的调用方可使用的最高版本号.高位字节指出副版本(修正)号,低位字节指明主版本号. lpWSAData 指向 WSADATA 数据结构的指针,用来接收 Windows Sockets实现的细节返回值: 0 成功. 以下值代表错误:WSASYSNOTREADY 指出网络通信依赖的网络子系统还没有准备好. WSAVERNOTSUPPORTED 所需的 Windows Sockets API 的版本未由特定的 Windows Sockets 实现提供. WSAEINVAL 应用程序指出的 Windows Sockets 版本不被该 DLL 支持.2. closesock

7、et:关闭一个套接口。原型:int PASCAL FAR closesocket( SOCKET s);参数:s:一个套接口的描述字。返回值: 0 成功. 以下值代表错误:WSANOTINITIALISED:在使用此 API 之前应首先成功地调用 WSAStartup()。 WSAENETDOWN:WINDOWS 套接口实现检测到网络子系统失效。 WSAENOTSOCK:描述字不是一个套接口。 WSAEINPROGRESS:一个阻塞的 WINDOWS 套接口调用正在运行中。 WSAEINTR:通过一个 WSACancelBlockingCall()来取消一个(阻塞的)调用。 WSAEWOULD

8、BLOCK:该套接口设置为非阻塞方式且 SO_LINGER 设置为非零超时间隔。3. WSACleanup:中止 Winsock 2 DLL (Ws2_32.dll) 的使用。释放 WinSock 实现分配给应用程序的系统资源。原型:int PASCAL FAR WSACleanup ( void );参数:无返回值:成功返回 04. socket: 创建一个能够进行网络通信的套接字。原型:int socket(int domain, int type, int protocol);参数:第一个参数指定应用程序使用的通信协议的协议族,对于 TCP/IP 协议族,该参数置 AF_INET; 第二

9、个参数指定要创建的套接字类型,流套接字类型为 SOCK_STREAM、数据报套接字类型为 SOCK_DGRAM、原始套接字 SOCK_RAW(WinSock 接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部); 第三个参数指定应用程序所使用的通信协议。返回值: 成功返回新创建的套接字的描述符,失败返回 INVALID_SOCKET。5. send:经套接字传送消息原型:ssize_t send ( int s , const void *msg , size_t len , int flags);参数:第一个参数指定发送端套接字描述符; 第二个参数指明一个存放应用程式要

10、发送数据的缓冲区; 第三个参数指明实际要发送的数据的字节数; 第四个参数一般置 0。返回值: 成功则返回实际传送出去的字符数,失败返回1,错误原因存于errno 中6. recv:从一个套接口接收数据。原型:int PASCAL FAR recv( SOCKET s, char FAR* buf, int len, int flags);参数:s:一个标识已连接套接口的描述字。 buf:用于接收数据的缓冲区。 len:缓冲区长度。 flags:指定调用方式。返回值: 若无错误发生,recv()返回读入的字节数。如果连接已中止,返回 0。否则的话,返回 SOCKET_ERROR 错误,应用程序可

11、通过 WSAGetLastError()获取相应错误代码。7. sendto:将指定字节数的数据发送到指定的终结点。原型:typedef int (_stdcall * SendTo) (SOCKET sSocket, const char * lpBuffer, DWORD dwLength,int dwFlags,const sockaddr * sinTo, nt dwToLength);参数:s 套接字 buff 待发送数据的缓冲区 size 缓冲区长度 Flags 调用方式标志位 , 一般为 0, 改变 Flags,将会改变 Sendto 发送的形式 addr (可选)指针,指向目的

12、套接字的地址 len addr 所指地址的长度返回值: 实际发送数据的长度。8. recvfrom:经 socket 接收数据原型:ssize_t recvfrom(int sockfd,void *buf,int len,unsigned int flags, struct sockaddr *from,socket_t *fromlen);参数:s:标识一个已连接套接口的描述字。buf:接收数据缓冲区。len:缓冲区长度。flags:调用操作方式。from:(可选)指针,指向装有源地址的缓冲区。fromlen:(可选)指针,指向 from 缓冲区长度值。返回值: 成功则返回接收到的字符数

13、,失败返回-1.9. connect:建立 socket 连线原型:int connect (int sockfd,struct sockaddr * serv_addr,int addrlen);参数:参数一:套接字描述符参数二:指向数据机构 sockaddr 的指针,其中包括目的端口和 IP 地址参数三:参数二 sockaddr 的长度,可以通过 sizeof(struct sockaddr)获得返回值: 成功则返回 0,失败返回-1,错误码 GetLastError()。10. accept:在一个套接口接受一个连接。原型:SOCKET PASCAL FAR accept( SOCKET

14、 s, struct sockaddr FAR* addr, int FAR* addrlen);参数:s:套接口描述字,该套接口在 listen()后监听连接。 addr :(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。Addr 参数的实际格式由套接口创建时所产生的地址族确定。 addrlen :(可选)指针,指向存有 addr 地址长度的整形数。返回值:成功返回一个新的套接字描述符,失败返回-1 。11. listen:将 Socket 置于侦听状态。原型:int PASCAL FAR listen( SOCKET s, int backlog);参数:S:用于标识一个

15、已捆绑未连接套接口的描述字。 backlog:等待连接队列的最大长度。返回值: 如无错误发生, listen()返回 0。否则的话,返回 SOCKET_ERROR 错误,应用程序可通过 WSAGetLastError()获取相应错误代码。12. Bind:将套接字绑定到一个已知的地址上。原型:int bind(int socket, const struct sockaddr *address, socklen_t address_len);参数:socket:是一个套接字。 address:是一个 sockaddr 结构指针,该结构中包含了要结合的地址和端口号。address_len:确定

16、address 缓冲区的长度。返回值: 如果函数执行成功,返回值为 0,否则为 SOCKET_ERROR。13. inet_addr:将一个点分十进制的 IP 转换成一个长整数型数 INET_ADDR()。原型:in_addr_t inet_addr(const char *cp);参数:字符串,一个点分十进制的 IP 地址返回值:如果正确执行将返回一个无符号长整数型数。如果传入的字符串不是一个合法的 IP 地址,将返回 INADDR_NONE。14. gethostbyname:返回对应于给定主机名的主机信息。原型:struct hostent FAR *PASCAL FAR gethostbyname(const char FAR * name);参数:字符串(主机名)返回值: 如果没有错误发生, gethostbyname()返回如上

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号