Jeśli aplikacja jest uruchamiany przez użytkownika (czyli podwójnym kliknięciu w Finderze), każda próba przez aplikację do tworzenia słuchacza gniazda poprosi użytkownika, aby umożliwić/zaprzeczyć, że słuchacza - a następnie odpowiednio dostosować ustawienia zapory sieciowej - bez żadnej programowej interwencji ze strony aplikacji.
Jeśli omawiany firewall jest routerem (problem, z którym ostatnio miałem do czynienia), masz kilka opcji. Najlepszą obsługiwaną opcją jest Bonjour/mDNSResponder (o ile nie chcesz obsługiwać podwójnej sytuacji). Jabłko zawiera aplikację otoki Objective-C wokół raczej rozwarty dns_sd.h:
http://developer.apple.com/library/mac/#samplecode/PortMapper/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007879-Intro-DontLinkElementID_2
Going the 3rd trasą firmy, przyjrzeć TCM Port Mapper. Korzysta z niektórych przestarzałych funkcji i wymaga trochę wysiłku, aby uruchomić go z obsługą ARC (jeśli jest to dla ciebie ważne).
http://code.google.com/p/tcmportmapper/
Zarówno wsparcie UPnP oraz NAT-PMP.
Wreszcie, jeśli twoja aplikacja działa jako demon (bez interfejsu użytkownika), będziesz musiał zapoznać się z ipfw. Przygotuj się. Google dla "ipfw os x". StackOverflow uniemożliwia mi opublikowanie więcej niż dwóch linków. Znakomity.
Nadzieja to pomaga ....
Co jeśli zapora jest na routerze? Twoi użytkownicy będą musieli poradzić sobie z zaporą na własną rękę. –