正在加载图片...
108第二部分Wmky 下载 u_short irdaAddress Family: irdaDevicelD[4] irdaserviceName [25] SOCKADDRIRDA: rdaAddressFamily字段一直都是 AF IRDA. irdaDeviceID是一个4字符的字串,用于唯 性地标识特定服务所运行的设备。在建立 IrSock服务器时,这个字段是忽略不计的。但是对客 户机而言,却非常重要,因为它指定的是准备连接的那个IrDA设备(也可能有若干个)。最后, rdaServicename字段是服务名,应用要么利用这项服务对其本身进行注册,要么试着与这项 服务建立连接。 622名字解析 定址可以利用“IrDA逻辑服务访问点选择符( LSAP-SEL)”或“信息访问服务”(IAS) 注册的服务为基础。IAS从一个 LSAP-SEL中摘出一项服务,并把它置入用户友好的文本服务 名中,方式和互联网域名服务器把名字映射到数字化IP地址差不多。要成功建立一个连接 既可以用LSAP-SEL,又可以用用户友好名。不过,用户友好名需要名字解析。大多数时候 都不要使用直接的 LSAP-SEL“地址”,因为IrDA服务的地址空间是限制了的。Win32实施方 案允许 LSAP-SEL整数标识符,标识符的范围是1到127。从本质上说,我们可把IAS服务器当 作一个WINS服务器,因为它把 LSAP-SEL和一个文字化的服务名关联在一起。 事实上的IAS条目有三个重要字段:类名、属性和属性值。举个例子来说,一个服务器希 望在服务名 MyServer下对其本身进行注册。这是服务器通过相应的 SOCKADDR_IRDA结构执 行绑定调用时完成的。这种情况一旦发生,就会增加一个IAS条目,该条目中包括类名 MyServer、属性 IrDA: Tiny TP:Lsap-SEL和属性值3。属性值就是下一个未用过的LSAP-SEL, 这个LSAP-SEL是系统根据注册来分配的。另一方面,客户机向连接调用投递一个 SOCKADDR_IRDA结构。随后便开始IAS查找,查找带有类名 MyServer和属性 IrDA: Tiny TP: Lsap-SEL的那项服务。IAS查询会返回3这个值。用户可利用 getsocketopt调用中 的套接字选项 IRLMP IAS QUERY来定制自己的IAS查询。 如果打算完全忽略IAS(一般不建议使用),则可为客户机准备连接的服务名或终端直接 指定一个 LASP-SEL地址。忽略IAS后,就只能和不提供任何IAS注册的老IrDA设备(比如红 外线打印机)进行通信。把 SOCKADDR IRDA结构中的服务名指定为 LSAP-SEL-xxx,就可 忽略IAS注册和査找。其中,xxx处是属性值,其范围在1到127之间。对服务器而言,这样会 直接为该服务器分配特定的 LSAP-SEL地址(假定这个 LSAP-SEL地址尚未使用)。对客户机 而言,这样会忽略IAS查找,并试图马上与运行于指定的 LSAP-SEL上的任何一项服务建立连 623红外线设备列举 由于红外线设备的使用地点不固定,因此,必须有一种方法,可以动态地把特定范围内 的所有可用红外线设备列举出来。我们先从 Windows ce实施方案和 Windows98及 Windows 2000实施方案之间的几点差别谈起。 Windows ce先于其他平台支持 IrSock,并提供少量与红 外线设备有关的信息。后来, Windows98和 Windows2000也开始支持 IrSock,但它们新增了 另外的“提示”信息,该信息是由列举请求返回的(关于提示信息,我们稍后将简要论述)i r d a A d d r e s s F a m i l y字段一直都是A F _ I R D A。i r d a D e v i c e I D是一个4字符的字串,用于唯一 性地标识特定服务所运行的设备。在建立 I r S o c k服务器时,这个字段是忽略不计的。但是对客 户机而言,却非常重要,因为它指定的是准备连接的那个 I r D A设备(也可能有若干个)。最后, i r d a S e r v i c e N a m e字段是服务名,应用要么利用这项服务对其本身进行注册,要么试着与这项 服务建立连接。 6.2.2 名字解析 定址可以利用“ I r D A逻辑服务访问点选择符( L S A P - S E L)”或“信息访问服务”(I A S) 注册的服务为基础。 I A S从一个L S A P - S E L中摘出一项服务,并把它置入用户友好的文本服务 名中,方式和互联网域名服务器把名字映射到数字化 I P地址差不多。要成功建立一个连接, 既可以用L S A P - S E L,又可以用用户友好名。不过,用户友好名需要名字解析。大多数时候, 都不要使用直接的 L S A P - S E L“地址”,因为I r D A服务的地址空间是限制了的。 Wi n 3 2实施方 案允许L S A P - S E L整数标识符,标识符的范围是 1到1 2 7。从本质上说,我们可把 I A S服务器当 作一个W I N S服务器,因为它把L S A P - S E L和一个文字化的服务名关联在一起。 事实上的I A S条目有三个重要字段:类名、属性和属性值。举个例子来说,一个服务器希 望在服务名M y S e r v e r下对其本身进行注册。这是服务器通过相应的 S O C K A D D R _ I R D A结构执 行绑定调用时完成的。这种情况一旦发生,就会增加一个 I A S条目,该条目中包括类名 M y S e r v e r、属性I r D A : Ti n y T P : L s a p - S E L和属性值3。属性值就是下一个未用过的 L S A P - S E L, 这个 L S A P - S E L 是系统根据注册来分配的。另一方面,客户机向连接调用投递一个 S O C K A D D R _ I R D A 结构。随后便开始 I A S 查找,查找带有类名 M y S e r v e r 和属性 I r D A : Ti n y T P : L s a p - S E L的那项服务。I A S查询会返回3这个值。用户可利用 g e t s o c k e t o p t调用中 的套接字选项I R L M P _ I A S _ Q U E RY来定制自己的I A S查询。 如果打算完全忽略 I A S(一般不建议使用),则可为客户机准备连接的服务名或终端直接 指定一个L A S P - S E L地址。忽略I A S后,就只能和不提供任何 I A S注册的老 I r D A设备(比如红 外线打印机)进行通信。把 S O C K A D D R _ I R D A结构中的服务名指定为 L S A P - S E L - x x x,就可 忽略I A S注册和查找。其中, x x x处是属性值,其范围在 1到1 2 7之间。对服务器而言,这样会 直接为该服务器分配特定的 L S A P - S E L地址(假定这个 L S A P - S E L地址尚未使用)。对客户机 而言,这样会忽略 I A S查找,并试图马上与运行于指定的 L S A P - S E L上的任何一项服务建立连 接。 6.2.3 红外线设备列举 由于红外线设备的使用地点不固定,因此,必须有一种方法,可以动态地把特定范围内 的所有可用红外线设备列举出来。我们先从 Windows CE实施方案和Windows 98及Wi n d o w s 2 0 0 0实施方案之间的几点差别谈起。 Windows CE先于其他平台支持I r S o c k,并提供少量与红 外线设备有关的信息。后来, Windows 98和Windows 2000也开始支持I r S o c k,但它们新增了 另外的“提示”信息,该信息是由列举请求返回的(关于提示信息,我们稍后将简要论述)。 108计计第二部分附Winsock API 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有