华北电力大学 网络编程 2一一Windows套接字.ppt

华北电力大学 网络编程 2一一Windows套接字.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华北电力大学 网络编程 2一一Windows套接字

开发Winsock网络应用程序的软、硬件环境 支持Winsock API的Windows 98 SE以上版本的OS。 采用可视化和面向对象技术的编程语言(例,VC6.0)。 采用的网络通信协议一般是TCP/IP协议。 网络中所采用的计算机应满足Windows操作系统运行的配置要求。 实现Winsock应用程序在网上的数据通信。 进行Winsock通信程序开发的基本步骤 Winsock支持两种类型的套接字,即流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM)。 无论服务器方还是客户机方应用程序都要进行所谓的初始化处理。 网络通信程序是某应用程序中的一个独立模块。(例,DLL文件) 主程序中采用多线程(Multithreaded)技术。 在许多情况下,要求通信模块应实时地收、发数据。 Socket及其来源 套接字的类型 套接字规范 几种典型的Windows套接字规范 Winsock编程的一般模式 基本操作函数 Winsock 2的新特性 Winsock 2新增函数一览 网络应用程序的运行环境 第2章 小结 该函数用于设置可以被WSAGetLastError( )函数接收的错误代码,原型是: void WSASetLastError(int iError); 其中,输入参数iError指明将被后续的WSAGetLastError( )函数调用返回的错误代码。此函数没有返回值。 Winsock中的字节顺序转换函数 getpeername( ):获取与套接口相连的对端套接字的名称 getsockname( ):获取一个套接口的本地名称 inet_addr( ):将一个点分十进制形式的IP地址转换成一个 长整型数 inet_ntoa( ):将网络地址转换成点分十进制的字符串格式 setsockopt( ):设置套接口的选项 getsockopt( ):获取一个套接口选项 ioctlsocket( ):控制套接口的模式 主机字节顺序 有的机器先低后高(little-endian) 有的机器先高后低(big-endian) 网络字节顺序 在网络的协议中,对多字节数据的存储,有它自己的规定,多字节数据在网络协议报头中的存储顺序,称为网络字节顺序。 网络应用程序要在不同的计算机中运行,不同计算机的主机字节顺序是不同的,但网络字节顺序是一定的。 为了保证应用程序的可移植性,在编程中,在指定套接字的网络地址时,应把IP地址和端口号从主机字节顺序转换为网络字节顺序;相反,如果从网络上接收到对方的网络地址,在本机处理或输出时,应将IP地址和端口号从网络字节顺序转换为主机字节顺序。 Winsock API特为此设置了如下4个函数: htonl( )、htons( )、ntohl( )、ntohs( ) htonl( ):主机字节顺序?网络字节顺序(Host to Network Long),用于IP地址。 u_long WSAAPI htonl(u_long hostlong); htons( ):主机字节顺序?网络字节顺序(Host to Network Short),用于端口号。 u_short WSAAPI htons(u_short hostshort); ntohl( ):网络字节顺序?主机字节顺序(Network to Host Long),用于IP地址。 u_long WSAAPI ntohl(u_long netlong); ntohs( ):网络字节顺序?主机字节顺序(Network to Host Short),用于端口号。 u_short WSAAPI ntohs(u_short netshort); 主机字节顺序表达的32位数. 主机字节顺序表达的16位数. 函数原型 int getpeername(SOCKET s, struct sockaddr * name, int * namelen); 标识一已连接套接口的描述符。 接收对端地址的名字结构。 一个指向名字结构长度的指针。 返回值:若无错误发生返回0;否则,返回SOCKET_ERROR。 getpeername( )函数的功能 用于返回已连接到套接字s的对端套接字的名称,并把它存放在sockaddr类型的name结构中。它适用于数据报或流式套接口。 函数原型 int getsockname(SOCKET s, struct sockaddr * name, in

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档