Ich muss eine Chat-App für iOS mit Socket-Programmierung erstellen und meine IP-Adresse ist 192.168.0.57:9300
.
Ich habe Raywenderlich
socket Programmierung Beispiel verwendet, Empfangen von Daten ordnungsgemäß funktioniert aber Senden nicht funktioniert, gibt es keine Fehler oder Absturz.
Mein Code ist wie folgt.
Code zum Öffnen von Streams
%Vor%Code zum Senden von Daten
%Vor%Delegierte
%Vor%Bitte geben Sie mir einen Vorschlag.
Sie sollten das "\ n" am Ende Ihrer Antwort wie folgt hinzufügen:
%Vor% Das funktioniert für mich, aber mein Problem ist, dass ich keine Daten mit der Funktion (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent
Ich hatte ein ähnliches Problem. Gelöst wurde es, indem Zeilen mit Zeilen- und Zeilenvorschubzeichen in die Zeichenfolge eingefügt wurden.
%Vor% Ich fand das Schreiben eines separaten Threads löste dieses Problem für mich.
Macht Sinn, da man Netzwerk-Ops im Haupt-Thread nicht wirklich machen sollte.
Hier ist mein Code:
Ein weiterer wichtiger Punkt ist, dass das NStreamEventOpenCompleted-Ereignis zweimal aufgerufen wird. Einmal, wenn jeder der Eingabe- und Ausgabeströme geöffnet ist. Man muss also darauf achten, vor dem Ereignis nicht in den Ausgabestrom zu schreiben.