2011-07-24 44 views
46

App Store'da, diğer bilgisayarların dosya aktarımı için iPhone/iPad aygıtlarına http bağlantısı yapmasına izin veren çeşitli uygulamalar olduğunu gördüm. IOS cihazında bir web servisi çalışıyormuş gibi görünüyordu. Sadece merak nasıl yapılır/hangi sınıf kullanılmış?Web sunucusu olarak iOS aygıtları

Teşekkürler.

+0

Bonjour yalnızca ağ bulma için kullanılır. Bu durumda söz konusu uygulamalar IP'yi, diğerlerinin HTTP tarayıcısı üzerinden bağlanabilmesini sağlar. @ hotpaw2'nin cevabı yerinde. – user523234

+0

Hangi çözümü kullandınız, ve deneyiminiz nasıldı? – Crashalot

cevap

45

Sadece cihazların IP adresini görüntüleyin, iOS cihazında çalışan bir uygulamayı dinlemek için bir soket açın ve http protokolünü uygulayın. sizin için işin büyük yapabileceğiniz birçok 3. parti kütüphaneleri vardır:

CocoaHTTPServer veya iPhoneHTTPServer3 veya SimpleWebSocketServer veya MultithreadedHTTPServer3

+0

Sadece statik .html dosyalarını barındırabilir miyim veya "sunucu tarafı" php veya whathever'da dinamik bir şey çalıştırabilir miyim diye merak ediyorum. – RollRoll

+0

Elbette, ancak dinamik sunucunuzu Swift (veya Obj C) içinde bulmanız veya yazmanız gerekir ve sunucunun iOS uygulamasıyla aynı işlem içinde (aynı arka plan izinleriyle) çalışması gerekir. – hotpaw2

18

gibi iyi seçim bunun için bir 3. parti kitaplığı kullanmaktır önce cevapladı. İşi yapmak için çoğunlukla iki kütüphane var: CocoaHTTPServer ve MongooseDaemon.

Her ikisi de bir Objective-C API'sine sahipler ancak MongooseDaemon, düz c ile yazılmış Mongoose HTTP sunucusunun etrafındaki sarıcıdır, oysa CocoaHTTPServer Objective-C'de tamamen yazılmıştır.

nedeniyle birkaç basit nedenlerden CocoaHTTPServer ile gitmeye karar verdi:

  1. MongooseDaemon var olmayan HTTP sunucusu için belge dizini ayarı gibi bile en basit özellik. NSHomeDirectory()'a işaret eden varsayılan değerden değiştirmek için bir kaynak dosyada #define'u değiştirmeniz gerekir.
  2. Şu an itibariyle MongooseDaemon kitaplığı, Objective-C sarıcısında kullanılan kullanım dışı yöntemler hakkında uyarılar içerir.
  3. CocoaHTTPServer, Bonjour veya WebDav gibi şeylerin bilincindeyken, Mongoose yalnızca temelleri sunar.
  4. CocoaHTTPServer, basit HTTP sunucularından, passwd, SSL/TLS veya WebDav HTTP sunucusundan çok sayıda örnekle birlikte gelir.
  5. CocoaHTTPServer, çoklu okuma özelliğini etkinleştirmek için GCD ile çalışır.
17

Sen Muhteşemdi merkez sevk dayalı iOS ve MacOS için modern bir web sunucusu var GCDWebServer

kullanabilirsiniz.

+1

CocoaHTTPServer bir yıl içinde güncelleştirilmedi ve çok sayıda durgun çekme istekleri ve sorunları var. GCDWebServer, TravisCI ve Swift ile yepyeni bir markadır. +1. – funroll

+0

... ve aynı zamanda LG ConnectSDK gibi topluluk ve büyük geliştiriciler tarafından da kabul ediliyor – loretoparisi

İlgili konular