Domanda

Sono nuovo di cacao, ma è riuscito a ottenere una connessione (ad un FTP) installato e funzionante, e ho impostato un EventHandler per la NSInputStream iStream per avvisare ogni risposta (che funziona anche).

Quello che riesco a ottenere è semplicemente il messaggio ciao e un timeout di connessione 60 sec, la chiusura della connessione di controllo.

EDIT:? Credo che la mia domanda è "senza chiusura-> apertura quello che sarebbe un modo non fatale del lavaggio del outputStream

Dopo la ricerca StackOverflow e trovare un sacco di problemi di scrittura NSOutputStream (ad esempio Come usare NSOutputStream di ? messaggio di scrittura ) e un sacco di confusione nei miei colpi google, ho pensato che mi piacerebbe provare a chiedere la mia domanda:

Ho provato a leggere il doc developer.apple.com su OutputStream, ma sembra quasi impossibile per me di inviare alcuni dati (in questo caso solo una stringa) per la "connessione" tramite il 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;
}

quanto sopra non sembra dar luogo a tutti gli eventi utilizzabili. digitando sotto NSStreamEventHasSpaceAvailable a volte dare una risposta se lo spam del ftp da continuare a creare nuove istanze di connessione e di continuare a inviare un comando ogni volta ostream ha spazio libero. In altre parole, niente di "destra" e quindi sono ancora chiaro come inviare correttamente un comando alla connessione. Dovrei aprire -> scrittura -> vicino ogni volta che voglio scrivere a ostream (e quindi al ftp) e posso quindi aspettare una risposta (evento hasBytesAvailable su iStream)? EDIT:. Non sembra che nessun

Per qualche motivo trovo molto difficile trovare alcun tutorial chiare in materia. Sembra che ci sono più di un paio nella stessa posizione come me: chiaro come utilizzare ostream scrittura

! Ogni po 'che può aiutare a chiarire la situazione è molto apprezzato!

Se necessario posso scrivere il resto del codice.

  • Chuck
È stato utile?

Soluzione

Ok, quindi 10 ore 28 vista e nessuna risposta / commenti, ma va bene così, perché ho appena risolto con qualche buon aiuto da un molto, molto cordiale irssi coder (senza leccare culo destinato;)).

Ha proposto che ho cercato di std :: endl'e esso (a capo + a filo), e così ho provato semplicemente aggiungendo il carattere nuova riga (\ n, 0x0A) e ha funzionato perfettamente!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top