Sockets in Objective C

P

Phin

Mitglied
Thread Starter
Dabei seit
19.03.2008
Beiträge
41
Reaktionspunkte
0
Hallo,
ich habe eine kurze Frage. Ich muss einen Server sowie einen Client schreiben. Der Server muss eigentlich nichts großartiges können, nur Nachrichten empfangen und speichern. Der Client sollte Text(bzw. an Webserver auch GET Requests) an den Server senden sowie die Antworten vom Server empfangen und ausgeben können. Der selbstgeschriebene Server + Client sollten hier auch als Chat "missbraucht" werden können, sprich die Verbindung muss aufrecht erhalten werden und Server+Client den jeweiligen Port abhören bis die Verbindung beendet wird.

Nun habe ich mich schon ein wenig umgeschaut und bin auf NSStream, NSMutableURLRequest, NSURLRequest usw. gestoßen und wollte fragen ob mir jemand empfehlen kann welche Methode sich da am ehesten eignen würde. Habe schon einige Zeit rumprobiert aber noch nichts groß zum laufen gebracht.

Ich habe vorher noch nie mit Objective C gearbeitet, sollte ich evtl. noch erwähnen.

Würde mich freuen wen da jemand einen Tipp hätte.

Grüße
Phin
 
Danke für die Tipps, sind beim Server denke ich sehr hilfreich.
Im Moment bin ich noch am Clienten, habe mich dabei für die NSStream Variante entschieden und das funktioniert soweit, noch ein paar kleinere Sachen sind zu beheben aber das sollte funktionieren. Ich denke ich werde Morgen dazu kommen mir einmal den Server anzusehen.

Edit: Eine Frage hätte ich aber noch, wie schließe ich den einen Stream korrekt? Schließe ich den NSInputStream zur Laufzeit mit [inputStream close]; stürzt mein Programm ab, ich denke weil der Runloop noch läuft, beim output-Stream klappt es mit dieser Methode.
Edit2: Und noch eine Frage, sende ich Daten ist dies immer nur 1x möglich, woran könnte das liegen? Hier der entsprechende Bsp.-Code:
Code:
	uint8_t buffer[4] = "test";				
	int len;
	
	len = [outputStream write:buffer maxLength:4];
	if (len > 0)
	{
		NSLog(@"Command send");
		//[outputStream close];
	}
Hier noch die Logfile dazu, nach dem 2 "Command send" geht es nichtmehr weiter:
Code:
2009-11-14 19:21:00.182 xpu_tcpip[7518:a0f] >> : NSStreamEventOpenCompleted
2009-11-14 19:21:02.028 xpu_tcpip[7518:a0f] Command send
2009-11-14 19:21:02.406 xpu_tcpip[7518:a0f] >> : NSStreamEventHasBytesAvailable
2009-11-14 19:21:02.411 xpu_tcpip[7518:a0f] >> : NSStreamEventHasBytesAvailable
2009-11-14 19:21:02.411 xpu_tcpip[7518:a0f] >> : NSStreamEventEndEncountered
2009-11-14 19:21:04.052 xpu_tcpip[7518:a0f] Command send

Phin
 
Zuletzt bearbeitet:
Zurück
Oben Unten