2009-01-26 4 views
6

Ich suche nach einer einfachen Möglichkeit für Benutzer, Inhalt von einem iPhone auf ihren Computer herunterzuladen. Ich habe andere Apps gesehen, die das iPhone zu einem Server machen und dem Benutzer eine IP-Adresse geben, zu der er auf seinem Computer navigieren kann. Ich habe mir ein paar Apple-Samples angesehen, aber nichts sah zu sehr danach aus, was ich wollte.Welche Klassen verwende ich, um ein iPhone als Server zu verwenden?

Also, was ist der einfachste Weg, um einen Server zu machen, der auf TCP-Port 80 (noch besser, ein HTTP-Server) abhört und Antworten sendet? Hoffentlich mit Objective-C-Klassen, aber ich kann einen Wrapper erstellen, wenn nichts verfügbar ist.

+0

Dies ist eine ausgezeichnete Frage. Ich freue mich darauf, eine Antwort zu hören. – Greg

Antwort

4

Google Toolbox for Mac hat eine Klasse GTMHTTPServer.

Deusty Designs hat ein Projekt namens CocoaHTTPServer.

Sie können Port 80 nicht verwenden, da Root-Zugriff erforderlich ist.

+0

Deusty Design's Projekt: Unglaublich hilfreich und einfach zu bedienen! –

+0

Übrigens ist IPv6 auf iPhone OS nicht verfügbar. Aber Sie können feststellen, dass es im Simulator funktioniert. Hüte dich. –

2

Cocoa bietet viele Unterstützung für das clientseitige Networking, aber nicht viel für serverseitige.

Auf der untersten Ebene können Sie normale BSD-Sockets verwenden.

Die nächste Ebene ist CoreFoundation (Ebene C, aber mit Kakao-ähnlichen Typen). Relevante CoreFoundation-APIs sind CFNetwork, CFSocket und CFStream (CFStream ist ein Dateistream, der seine Quelle über ein Netzwerk beziehen kann - es ist kein System V-Stil-Netzwerkstream).

In Objective-C können Sie NSStream betrachten, das ist das Objective-C-Äquivalent von CFStream.

0

Es gibt einen guten O'Reilly-Artikel über die Einrichtung eines einfachen Servers.

How to Write a Cocoa Web Server

Er nutzt NSFileHandle und NSSocketPort einen Listener einzurichten und Anfragen bearbeiten. Er geht auch in einige der Detailarbeit der BSD-Sockets direkt zu verwenden. Ich hatte in der Vergangenheit Glück mit diesem Ansatz.

Dies wurde im Jahr 2006 geschrieben, und ich habe dies noch nicht auf einem iPhone-Projekt verwendet, aber die Klassen, die er verwendet, sind ziemlich häufig. Ich würde es eine harte Chance geben, für ein iPhone-Projekt zu arbeiten.

Verwandte Themen