小编use*_*037的帖子

NSInputStream读取:maxBytes始终返回0

我很困惑.我有一个开放的NSInputStream认为它有可用的字节.当我读取字节时,操作总是返回0.我已经到处搜索,我的代码看起来像其他大多数人都做同样的事情.这是一个如此低级别的操作,我无法弄清楚它是如何出错的.我通过连接到许多不同的主机尝试了这个.我也看过Wireshark,我可以看到主机收到我写的字节,但是read:maxBytes操作仍然总是返回0 ???

case NSStreamEventHasBytesAvailable:
    {
        //Check stream status
        NSString *returnedStatus;
        commandLength = [commandString length];
        [commandString deleteCharactersInRange:NSMakeRange(0, commandLength)];
        returnedStatus = [NSString stringWithString:[self decodeStatus:[stream streamStatus]]];
        [commandString appendFormat:@"inputStream %@ status=%@\n",stream, returnedStatus];
        [self writeCommand:commandString];


        uint8_t *buf[buffLength];
        NSUInteger len = 0;

        len = [(NSInputStream *)stream read:(uint8_t *)buf maxLength:buffLength];

        if (len == 0) {
            //len = buffLength;
            [self writeCommand:@"No bytes read!\n"];
        }
Run Code Online (Sandbox Code Playgroud)

nsinputstream

1
推荐指数
1
解决办法
1099
查看次数

标签 统计

nsinputstream ×1