Какао NSOutputStream отправить в соединение

Я новичок в Какао, но мне удалось установить и запустить соединение (с FTP), и я настроил обработчик событий для NSInputStream iStream для оповещения о каждом ответе (что также работает).

Что мне удается получить, так это просто приветственное сообщение и тайм-аут соединения 60 секунд, закрывающий управляющее соединение.

РЕДАКТИРОВАТЬ: я предполагаю, что мой вопрос "без закрытия-> открытия, что было бы неразрывным способом сброса outputStream?

После поиска в стеке и обнаружения большого количества проблем с записью в NSOutputStream (например,Как использовать сообщение для записи NSOutputStream?) и много путаницы в моих хитах в гугле, я решил попробовать задать свой вопрос:

Я попытался прочитать документ developer.apple.com на OutputStream, но мне кажется почти невозможным отправить некоторые данные (в данном случае просто строку) в «соединение» через 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;
}

вышеупомянутое, кажется, не приводит к каким-либо полезным событиям. ввод его в NSStreamEventHasSpaceAvailable иногда дает ответ, если я спамлю FTP, продолжая создавать новые экземпляры соединения и продолжая посылать некоторые команды всякий раз, когда в oStream есть свободное место. Другими словами, ничего «правильного» и поэтому мне все еще непонятно, как правильно отправить команду на соединение. Должен ли я открывать -> писать -> закрывать каждый раз, когда я хочу записать в oStream (и, следовательно, в ftp), и могу ли я ожидать ответа (событие hasBytesAvailable на iStream)? РЕДАКТИРОВАТЬ: не похоже, что нет.

По какой-то причине мне очень трудно найти какие-либо четкие учебники по этому вопросу. Похоже, что у меня есть несколько человек в одной позиции: неясно, как использовать oStream write?

Пожалуйста! Любое, что может помочь прояснить это, очень ценится!

При необходимости я могу написать остальную часть кода.

цыпленок

Ответы на вопрос(1)

Ваш ответ на вопрос