我是Cocoa的新手,但设法连接(到FTP)启动并运行,我已经为NSInputStream iStream设置了一个事件处理程序来提醒每个响应(这也有效)。
我设法得到的只是问候消息和连接超时60秒,关闭控制连接。
编辑:我想我的问题是“没有关闭 - >打开什么是刷新outputStream的非终止方式?
在搜索stackoverflow并发现很多NSOutputStream写入问题(例如How to use NSOutputStream's write message?)以及我的谷歌点击中存在很多混乱之后,我想我会尝试提出自己的问题:
我尝试在OutputStream上阅读developer.apple.com doc,但我似乎几乎不可能通过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写入?
请!任何有助于澄清这一点的内容都非常感谢!
如果需要,我可以编写剩下的代码。
答案 0 :(得分:5)
好的,所以10小时28次观看,没有答案/评论,但是没关系,因为我刚刚从一个非常友好的irssi编码器(没有屁股舔打算)的一些好帮助解决了它。)。
他提议我尝试std :: endl'e it(换行符+刷新),所以我尝试简单地添加换行符(\ n,0x0A)并且它工作得很好!