DirectPlay Service Providers
Microsoft® DirectPlay® provides your application with a virtual network connection that enables you to communicate with other computers in the same way, regardless of type of network involved. To provide this level of abstraction, network connections are made through a service provider. Once you have selected a service provider, your application uses the appropriate DirectPlay methods to communicate with other computers in a session. The service provider handles the details of communicating over the selected network hardware.
DirectPlay includes service providers for four types of network connections: TCP/IP, IPX, modem, and serial. See DirectPlay Addressing for a discussion of how to select a service provider.
明确的说 Dplay肯定是支持IPX的
下面这段文字是在DX8 Docs里面找到的
Creating IPX Address Objects
This topic discusses how to create typical address objects using the IDirectPlay8Address methods for IPX service providers.
应该能说明问题吧 :)
Selecting a Service Provider for a Client
所谓的服务提供就是你的网络连接协议。大多数游戏使用TCP/IP或者Modem协议,不过DirectPlay还提供了serial和IPX两种支持。
如果你的用户用大厅客户端联入了一个会话,你可以通过检验DPL_CONNECTION_SETTINGS来决定所要使用的网络协议,即服务提供,这个结构是伴随DPL_MSGID_CONNECT消息的。你或者可以询问用户来决定使用什么样的协议。通过客户对象中的IDirectPlay8Client::EnumServiceProviders函数来枚举当前可用的网络协议。在Using DirectPlay Enumerations有详细介绍。
一旦你选择了一个协议,你要创建一个DirectPlay地址对象给你的用户(一个设备地址)。你可以用这个地址通过一系列的数字(从DirectPlay函数中获得)来定义你的设备。在DirectPlay Addressing有详细对DirectPlay地址和地址对象的讨论。
Selecting a Client/Server Host
根据定义,服务端程序主持会话。要加入到会话中,客户端程序必须获得服务器主机的地址。通用的检取主机的方法是通过大厅服务器。这样,当一个用户连接到会话,你接收到的连接信息DPL_MSGID_CONNECT将包括主机的地址。结构中pdp8HostAddress成员有指向主机地址的指针。
如果服务端使用IP/IPX网络协议,也可以创建一个广播会话(broadcast session),在局域网中。创建广播会话,可以调用IDirectPlay8Server::SetServerInfo。然后调用IDirectPlay8Server::Host来发布主持会话的主机。你可以通过IDirectPlay8Server::Host函数的pdnAppDesc 参数更改DPN_APPLICATION_DESC结构,以获得更详细的配置信息。