TCP-Server in Cocoa?

first things first:

Xcode, nicht xCode..

second:

Ich hab dein Eindruck, du siehst das Forum als ausgelagerte Suchmaschine. Es gibt etliche Threads die sich mit dem Problem "womit programmiere ich am besten...." beschäftigen. Geb dir etwas mehr Mühe und komme auf Probleme zurück, wenn du sie nicht durch Recherche lösen kannst. Dann helfe *ich* dir sehr gerne zu jeder Zeit weiter.
 
  • Gefällt mir
Reaktionen: buk
Guude,
... mit was Codet man am besten C bzw C++, auch mit xCode?
es heißt Xcode! ;)

Wenn du nichts mit GUI machst, kannst du das Terminal und den magischen "6" Editor benutzen. Textmate kann auch C und C++ sofern du die Developer Tools installiert hast.
 
Geht es vllt nicht, da es von 2005 war?
Das steht bei dem Code:
Last Revision:
Version 1.0, 2005-06-01
Cocoa example code showing how to write a simple client and server using NSStream.
Build Requirements:
Tiger
Runtime Requirements:
Tiger
 
Hallo klist,

Du solltest Dir wirklich überlegen, was Dein Ziel ist. Wirklich TCP? Oder möchtest Du vielleicht eine etwas elegantere Kommunikation über REST, SOAP, XML-RPC, oder über HTTP?

Soll das ganze nur ein Testsystem werden, oder planst Du, auch aus der OS X Seite ein Produkt machen?

Alex
 
Nein es ist ein reines Testsystem, damit ich mein iPhone App gleich am Rechner testen kann, ohne jedes mal zum Auto rennen zu müssen.

Und das Modul mit dem ich kommunizieren möchte wird eben über TCP/IP angesprochen.

Deswegen wäre da glaube ich ein TCP Server sinnvoll, oder?
 
Ja, aber ob es Cocoa sein muss ist eben eine andere Frage. In vielen Skriptsprachen geht das sehr viel einfacher.

Alex
 
Oder möchtest Du vielleicht eine etwas elegantere Kommunikation über REST, SOAP, XML-RPC, oder über HTTP?

Da kommuniziert man auch über TCP *klugscheiß*

Vielleicht schmeißt du ja mal einen Debugger an und schaust, was passiert, wenn dein Programm stirbt..
 
Da kommuniziert man auch über TCP *klugscheiß*

Natürlich. Aber wenn ich über XML-RPC kommuniziere, dann bau ich mir keinen Low-Level Server, sondern nehm mir irgendwo was, dass mein höheres Protokoll schon spricht. ;)

Alex
 
Natürlich. Aber wenn ich über XML-RPC kommuniziere, dann bau ich mir keinen Low-Level Server, sondern nehm mir irgendwo was, dass mein höheres Protokoll schon spricht. ;)

Alex

ritschtitsch ;) ich würde auch nicht gern mein eigenes kommunikationsprotokoll entwerfen müssen. das parsen ist manchmal etwas fehleranfällig..
 
So habe jetzt nen TCP Server in C mit der IP. 127.0.0.1 am Port:1111

QUellcode:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <string.h>
#include <arpa/inet.h>

int main(void) {
/* Socket erstellen - TCP, IPv4, keine Optionen */
int lsd = socket(AF_INET, SOCK_STREAM, 0);

/* IPv4, Port: 1111, jede IP-Adresse akzeptieren */
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(1111);
saddr.sin_addr.s_addr = htons(INADDR_ANY);

/* Socket an Port binden */
bind(lsd, (struct sockaddr*) &saddr, sizeof(saddr));

/* Auf Socket horchen (Listen) */
listen(lsd, 10);

while(1) {
/* Puffer und Strukturen anlegen */
struct sockaddr_in clientaddr;
char buffer[30];
bzero(buffer, sizeof(buffer));

/* Auf Verbindung warten, bei Verbindung Connected-Socket erstellen */
socklen_t clen = sizeof(clientaddr);
int csd = accept(lsd, (struct sockaddr*) &clientaddr, &clen);

/* Vom Client lesen und ausgeben */
int bytes = recv(csd, buffer, sizeof(buffer), 0);
printf("Der Client hat folgenden String gesendet: %s\n", buffer);
printf("Es wurden %d Bytes empfangen\n", bytes);

/* Verbindung schließen */
close(csd);
}

return EXIT_SUCCESS;

}

Kann mich vom Simulator aus auch verbinden, nur leider disconnectet der sich gleich wieder nachdem er was gesendet hat.
Das gesendete kommt aber beim Server an *freu*

Mal sehen wieso sich der Simulator gleich wieder disconnected :(
 
Hab den Fehler gefunden aber kA was ich damit anfangen soll....
Der Simulator disconnected sich, wenn ich die readMethode (zum Empfangen von Daten) aufrufe.

Und ein 2. Problem ist, dass ich dem Server noch beibringen muss, auf Nachrichten zu Antworten...OJEE ^^

Danke für die Hilfe bis hierher!
 
Zurück
Oben Unten