gpt4 book ai didi

cocoa NSOutputStream 发送到一个连接

转载 作者:可可西里 更新时间:2023-11-01 02:45:04 25 4
gpt4 key购买 nike

我是 Cocoa 的新手,但设法建立并运行了一个(到 FTP 的)连接,并且我已经为 NSInputStream iStream 设置了一个事件处理程序来提醒每个响应(这也有效)。

我设法得到的只是问候消息和连接超时 60 秒,关闭控制连接。

编辑:我想我的问题是“不关闭->打开什么是刷新输出流的非终止方式?

在搜索 stackoverflow 并发现很多 NSOutputStream 写入问题(例如 How to use NSOutputStream's write message? )以及我的 google 搜索结果中的很多困惑之后,我想我会试着问自己的问题:

我已经尝试阅读有关 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 有可用空间时继续发送一些命令来向 ftp 发送垃圾邮件,有时会给出响应。换句话说,没有什么是“正确的”,所以我仍然不清楚如何正确地向连接发送命令。每次我想写入 oStream(并因此写入 ftp)时,我是否应该打开 -> 写入 -> 关闭,然后我是否可以期待回复(iStream 上的 hasBytesAvailable 事件)?编辑:看起来不像。

出于某种原因,我发现很难找到关于这个问题的任何清晰的教程。好像和我一样立场的不在少数:不清楚oStream write怎么用?

拜托!非常感谢可以帮助解决这个问题的任何一点点!

如果需要,我可以编写其余代码。

  • 查克

最佳答案

好的,所以 10 小时 28 次浏览,没有答案/评论,但没关系,因为我只是在非常友好的 irssi 编码器的一些很好的帮助下解决了它(没有舔屁股的意图;))。

他建议我尝试 std::endl'e (newline + flush),所以我尝试简单地添加换行符 (\n, 0x0A) 并且效果很好!

关于 cocoa NSOutputStream 发送到一个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2589070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com