我是Cocoa的新手,但設法啓動並運行連接(到FTP),並且爲NSInputStream iStream設置了一個事件處理程序來警告每個響應(這也起作用)。Cocoa NSOutputStream發送到連接
我設法得到的只是hello消息和連接超時60秒,關閉控制連接。
編輯:我想我的問題是「沒有閉合體>開什麼會是沖洗的OutputStream的非終止方式
計算器搜索和發現了很多NSOutputStream的寫問題之後(如How to use NSOutputStream's write message?)和在我的谷歌點擊很多混亂,我想我會試着問我自己的問題:
我試着讀OutputStream上的developer.apple.com文檔,但似乎幾乎不可能發送一些數據(在本例中只是一個字符串)通過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下鍵入它,如果我通過不斷創建新的連接實例並在OStream具有可用空間時繼續發送某些命令來垃圾郵件,則有時會給出響應。換句話說,沒有什麼是「正確的」,所以我仍然不清楚如何正確地向連接發送命令。我應該打開 - >寫 - >關閉每次我想寫入oStream(並因此到ftp),然後我可以期待答覆(iStream上hasBytesAvailable事件)? 編輯:看起來不像它沒有。
出於某種原因,我發現很難找到有關此問題的任何明確教程。似乎有很多與我相同的位置:不清楚如何使用oStream寫入?
請!任何一點可以幫助清除這一點非常感謝!
如果需要,我可以編寫其餘的代碼。
- 查
爲什麼這樣嗎?如果我發送二進制數據怎麼辦? – 2016-09-26 21:32:05