OBEX Application Development (Windows Embedded CE 6.0)


The Object Exchange Protocol (OBEX) technology provides a compact binary protocol that enables a wide range of devices to exchange data spontaneously in a simple, efficient manner.

OBEX supports two different transports in the Windows Embedded CE operating system (OS), namely, Bluetooth and Infrared Data Association (IrDA) protocols.

OBEX is primarily used as a push or pull data objects. It performs functions that are similar to Hypertext Transfer Protocol (HTTP), only OBEX does not require the resources that an HTTP server requires. This makes OBEX perfect for low-end devices with limited resources.

When two devices are about to exchange information over OBEX, the requester, commonly known as the client, will send out commands to the server, which will carry out the commands as requested.

An OBEX client is a device that initiates a connection to an OBEX server. An OBEX server is a device that listens for incoming connections from a client.

The following scenarios are typical uses of OBEX:

  • A portable computer pushing a file to another portable computer, or personal digital assistant (PDA).
  • An industrial computer pulling status and diagnostic information from a factory machine.
  • A digital camera pushing images to a film-development kiosk.
  • A digital cellular phone being queried for the electronic business card of its owner. This process involves pulling the information.

An OBEX object is a simple binary large object (BLOB) that has a set of headers that describe it. Pushing is accomplished with a Put method. Pulling is accomplished with a Get method. Windows Embedded CE supports pushing and pulling of objects by Multipurpose Internet Mail Extenstions (MIME) type. Commands are executed in the context of a connection between an OBEX server and a client.

Because OBEX runs on several transports, it uses an extensible module design. Transports are registered so that on startup, the OBEX layer can initialize all known transports. The OBEX layer formats packets to the OBEX specification then sends them to the appropriate transport for delivery.

Device discovery takes place across all available transports. Each transport object exposes a method that enables the OBEX layer to build a list of all available devices. Device discovery is not part of the OBEX specification, however, it is essential to establishing a connection between devices.

Authentication at the OBEX protocol level is optional for both Bluetooth and IrDA. Authentication can be done in one of two ways:

  • The client requests authorization from the server.
  • The server forces authorization.

Authentication can be required for each connection, or request.

For more information about OBEX technology, see the OBEX specification at this Official IrDA Web site.

Server Support

Provides information about OBEX server support that facilitates information exchange using Bluetooth or the IrOBEX 1.2 protocol.

Client Support

Provides information about OBEX client support that initiates an underlying transport connection to an OBEX server.

OBEX Protocols Overview

Provides general information about the OBEX protocols for wireless data exchange

Object Exchange Protocol

Provides information about the Object Exchange Protocol (OBEX) technology for Windows Embedded CE.

OBEX Reference

Provides information about programming elements that are available for creating OBEX applications.

OBEX OS Design Development

Provides information about OBEX dependencies, modules and components that implement the OBEX functionalities, and Sysgen variables that enable these functionalities.

OBEX Samples

Describes the samples that are available in the %_WINCEROOT%\Public\Servers\SDK\Samples\OBEX folder.

Community Additions