11

I would like to know whether bonjour is a public or private api?Can we use it in our apps directly.

sneha
  • 121
  • 1
  • 5

5 Answers5

23

Bonjour is handled by the NSNetServices and CFNetServices APIs, which you can read more about here. These are Cocoa and Core Foundation interfaces, and are publicly available for use in Mac and iPhone applications. As has been pointed out, many applications make use of this to do iPhone - iPhone networking (Game Kit is layered on top of Bonjour, for example) or Mac - iPhone data syncing (such as for Marcus Zarra's ZSync library).

Bill Dudney has created a stripped-down Bonjour server class for the iPhone, which he describes here. I created a matching Mac application which communicates with his test application and can be downloaded from here. Apple's WiTap sample code demonstrates how to use Bonjour to network two iPhones together.

I devoted a section of the class I teach on iPhone development to Bonjour networking, for which the course notes can be downloaded in VoodooPad format here (go to the Networking class for coverage of this).

Brad Larson
  • 170,088
  • 45
  • 397
  • 571
11

Apple even has an example project called BonjourWeb that shows you how to use Bonjour on the iPhone.

Nikolai Ruhe
  • 81,520
  • 17
  • 180
  • 200
6

Yes, Bonjour is all public. There are many apps on the App Store that use it.

Ole Begemann
  • 135,006
  • 31
  • 278
  • 256
2

The Bonjour API seems to be open, however it does belong to Apple and you need to ensure you're correctly licensed. You will likely require a license if you wish to use the Bonjour logo, develop Bonjour enabled applications on Windows, for example.

For further info see: http://developer.apple.com/softwarelicensing/agreements/bonjour.html

Alberto Rossini
  • 149
  • 1
  • 2
  • 1
    No need for a special license in this case. It is included in the iPhone SDK license. If you’re on another platform (like Windows) you could use a non-Apple Zero-Conf implementation. – Nikolai Ruhe Mar 19 '10 at 15:49
  • 2
    Even on Windows, they are licensing the image freely, as well as the Bonjour name if you satisfy the terms of the agreement (just making sure that your application actually implements Bonjour properly). There isn't a fee associated with any of this. – Brad Larson Mar 19 '10 at 16:48
1

Yes! Bonjour is Public API.

Yeah you can use for your applications. For Publishing the Service you need to use NSNetService and for Browsing you need to use NSNetServiceBrowser Delegates. You can send data using NSStream. Make sure in order to communicate with bonjour devices. Devices must be in same Wi - Fi Router

Srikanth Adavalli
  • 665
  • 1
  • 10
  • 25