2010-07-24 33 views
9

Bir süredir bir proje üzerinde çalışıyorum ve 8080 numaralı bağlantı noktasında çalışan yerleşik bir HTTP sunucusuna sahip. Kullanıcılara, aygıt aracılığıyla ör. http://192.168.1.4:8080/ - harika çalışıyor. Son zamanlarda Uygulamaların "8080" gereksinimini kaldırmak için bağlantı noktası 80'u kullanabileceğini fark ettim, ancak bağlantı noktası 80'i ayarlamaya çalışırsam "Genel CFSocket hatası" ile bir kilitlenme elde ediyorum.Web sunucusu bağlantı noktası 80 on iPhone

Uygulamada web sunucusu için 80 numaralı bağlantı noktasını nasıl etkinleştirebileceğinizi düşünüyorsunuz?

bu oluyor Birkaç ekran

:

İlk - iPad'de, uygulaması erişebilirsiniz URL'ler gösteriyor. İkinci

iPad http://enrogue.com/port80/ipad.jpg

- IP tarafından Firefox:

FF by IP http://enrogue.com/port80/firefox_byip.png

yukarıdaki mağaza gerçek uygulamasından vardır, bu jailbreak büyü falan değil. < 1024 bağlantı noktalarının UNIX sistemlerinde yönetici için ayrıldığını biliyorum, bu nedenle yukarıdaki uygulama açıkça bağlantı noktasına erişmek için belirli bir şey yapıyor.

+1

şansın başka uygulama bu bağlantı noktasını kullanan veya portları açtığınızı Uygulamanızı geçmiş ve düzgün bir şekilde temizlemeyi mi unuttunuz? Telefonu kapatıp tekrar çalıştırmayı denediniz mi? – Steve

+0

Uygulamamı açıyorum, kilitleniyorum, diğer uygulamaları aç, işe yarıyor, uygulamayı aç, kilitleniyor. Hayır, temizlik problemi değil. – Kalle

+0

Oh ve bu iOS 4 değil, başka hiçbir uygulama çalışmıyor. Ve iOS 4'te bir ağ soketini tuttuğumu düşünürken, arka planda anında fesih sonuçlanır, bu yüzden o zaman bile böyle olmamalıdır. – Kalle

cevap

5

Aygıtın IPv4 arabirimindeki 80 bağlantı noktasına ancak simülatörde değil, IPv6 arabiriminde bağlantı kurabilirsiniz. Sen simülatörü için koşullu farklı bir port kullanabilir, sadece IPv4 arayüzünde dinlemek için soket kodunu değiştirmek gerekir:

#if TARGET_IPHONE_SIMULATOR 
    [httpServer setPort:8080]; 
#else 
    [httpServer setPort:80]; 
#endif 
+0

Sim'de koşmuyorum, bu yüzden prob değil - soket kodu suçlu sanırım o zaman. Poke ve tekrar yorum yapacak! – Kalle

+0

Kutsal ... işe yaradı. Sen salla, Bay Matt! :) – Kalle

+0

Elbette ki bu problemi çözüyor: IPv6 isteyen kullanıcılar ne olacak? Bağlantı noktası> 1024 ise IPv6'yı mümkün kılan bir yapılandırma değeri koyabilirsiniz, ama hm, tercihen Apple 80 numaralı bağlantı noktasını kullanmanıza izin verir. – Kalle

4

iPhone unix tabanlıdır. Kök/süper kullanıcı için 1024'ün altındaki bağlantı noktaları ayrılmıştır. Bu portları kullanabilmek için root olmanız gerekiyor.

+0

Evet. Başka bir deyişle, bir jailbroken telefonunda root olarak çalışırken, 1024'ün altındaki portları açamazsınız. –

+0

Bu durumun, uygulamaların port 80'e erişmesi nedeniyle olduğu belli değil, sanırım Hava Paylaşımı'nı kontrol edin. Biraz pahalı ama yapıyor. iPad için en azından HD versiyonu. – Kalle

İlgili konular