gpt4 book ai didi

iphone - 在 iPhone 编程中,如何从具有 XP 操作系统的服务器接收带有 TCP/IP 的图像文件?

转载 作者:可可西里 更新时间:2023-11-01 02:32:40 29 4
gpt4 key购买 nike

我正在用 iPhone 制作图像接收器。

服务器以字节发送图像文件。

并且,我尝试将这些字节制作成图像。

但是,我无法制作图像。已经,几天过去了……

我真的需要你的帮助...

这是我使用的源代码。

        Byte recvBuffer[500];

memset(recvBuffer, '\0', sizeof(recvBuffer));
[iStream read:recvBuffer maxLength:sizeof(recvBuffer)-1];

NSUInteger len = sizeof(recvBuffer);
NSData *webdata = [NSData dataWithBytes:recvBuffer length:len];
imageview.image = [UIImage imageWithData:webdata];

如果你给我评论,我会很感激!感谢阅读!

最佳答案

badgerr 的答案基本上是我会使用的答案,但由于问题被标记为 Objective-C 代码实际上应该在 Objective-C 中 - 如下所示。请注意,通过 TCP/IP 连接,-read:maxLength: 可能会在读取请求的字节数之前返回。

uint32_t size;  // Let's make sure size is an explicit width.

NSInteger totalBytesRead = 0;
NSInteger bytesRead = [istream read: &size maxLength: sizeof size];
while (bytesRead > 0 && totalBytesRead + bytesRead < sizeof size)
{
totalBytes+= bytesRead;
bytesRead = [istream read: &size + totalBytesRead maxLength: (sizeof size) - totalBytesRead];
}
if (bytesRead >= 0)
{
totalBytesRead += bytesRead;
}
else
{
// read failure, report error and bail
}
if (totalBytesRead < sizeof size)
{
// connection closed before we got the whole size, report and bail
}
size = ntohl(size); // assume wire protocol uses network byte ordering

NSMutableData* buffer = [[NSMutableData alloc] initWithLength: size];
totalBytesRead = 0;
bytesRead = [istream read: [buffer mutableBytes] maxLength: size];
while (bytesRead > 0 && totalBytesRead + bytesRead < size)
{
totalBytes+= bytesRead;
bytesRead = [istream read: (char*)[buffer mutableBytes] + totalBytesRead maxLength: size - totalBytesRead];
}
if (bytesRead >= 0)
{
totalBytesRead += bytesRead;
}
else
{
// read failure, report error and bail (not forgetting to release buffer)
}
if (totalBytesRead < size)
{
// connection closed before we got the whole image, report and bail (not forgetting to release buffer)
}
else
{
[buffer setLength: size];
}

imageView.image = [UIImage imageWithData: buffer];
[buffer release];

我直接将上面的内容输入到 SO 中,所以它没有经过测试甚至没有编译。

关于iphone - 在 iPhone 编程中,如何从具有 XP 操作系统的服务器接收带有 TCP/IP 的图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4613218/

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