Frage

Ich bin neu in Cocoa, schaffte es aber eine Verbindung zu bekommen (zu einem FTP) und läuft, und ich habe einen Eventhandler für die NSInputStream iStream jede Antwort zu alarmieren einzurichten (das funktioniert auch).

Was ich zu bekommen verwalten ist einfach die Hallo-Nachricht und ein Verbindungs-Timeout 60 Sekunden, schließen Steuerverbindung.

EDIT: Ich denke, meine Frage ist „ohne Schließ-> Öffnung, was ein nicht-Abschluss Weg wäre, den output der Spülung

Nach der Suche und Stackoverflow vieler NSOutputStream Schreib Probleme zu finden (zB Wie NSOutputStream zu gebrauchen ? Nachricht schreiben ) und eine Menge Verwirrung in meinen google-Hits, dachte ich, ich würde versuchen, meine eigene Frage zu stellen:

Ich habe versucht, auf den Output developer.apple.com doc zu lesen, aber es scheint mich fast unmöglich, einige Daten zu senden (in diesem Fall nur eine Zeichenfolge) an die „Verbindung“ über die NSOutputStream oStream.

- (IBAction) send_something: sender
{
const char *send_command_char = [@"USER foo" UTF8String];
send_command_buffer = [NSMutableData dataWithBytes:send_command_char length:strlen(send_command_char) + 1];
uint8_t *readBytes = (uint8_t *)[send_command_buffer mutableBytes];
NSInteger byteIndex = 0;
readBytes += byteIndex;
int data_len = [send_command_buffer length];
unsigned int len = ((data_len - byteIndex >= 1024) ?
                    1024 : (data_len-byteIndex));
uint8_t buf[len];
(void)memcpy(buf, readBytes, len);
len = [oStream write:(const uint8_t *)buf maxLength:len];
byteIndex += len;
}

das scheint oben nicht Ergebnis in denen keine verwertbaren Ereignisse. manchmal ist es unter NSStreamEventHasSpaceAvailable eingeben geben eine Antwort, wenn ich den ftp durch keep Schaffung neuer Verbindungsinstanzen Spam und halten einen Befehl zu senden, wenn oStream freien Speicherplatz verfügt. Mit anderen Worten, nichts „rechts“ und so bin ich nach wie vor unklar, wie man richtig einen Befehl an die Verbindung senden. Soll ich öffnen -> Schreib -> in der Nähe jedes Mal, wenn ich zu oStream schreiben will (und damit den ftp) und kann ich dann eine Antwort (hasBytesAvailable Ereignis auf iStream) erwarten? EDIT:. Sieht nicht wie es kein

Aus irgendeinem Grund habe ich es sehr schwierig finden keine klare Anleitungen zu diesem Thema zu finden. Es scheint, als gäbe es mehr als ein paar in der gleichen Position wie ich ist:? Unklar, wie oStream schreiben verwenden

Bitte! Jeder wenig, die helfen können diese bis klar ist sehr zu schätzen!

Bei Bedarf es den Rest des Codes schreiben.

  • Chuck
War es hilfreich?

Lösung

Okay, also 10 Stunden 28 Ansichten und keine Antworten / Kommentare, aber das ist in Ordnung, weil ich es gelöst nur mit einigen guten Hilfe von einem sehr, sehr freundlich irssi Coder (kein Hintern lecken soll;)).

Er schlug vor, dass ich versuchte, es zu std :: endl'e (newline + Flush), und so habe ich einfach versucht, die Newline-Zeichen hinzugefügt (\ n, 0x0A) und es funktionierte perfekt!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top