- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 iOS6.1 上,下面的代码应该做同样的事情,但是当我忘记写 addr.sin_len = sizeof(adde)
时,第一个 block 失败了。原来的错误是:
GOT EVENT FROM INPUT Event: 8
ERR: Error Domain=NSPOSIXErrorDomain Code=12 "The operation couldn’t be completed. Cannot allocate memory"
在添加缺失的行以设置结构大小后,第一个 block 与第二个 block 一样工作。其他开发人员可能会看到该错误消息并在这篇文章中绊倒。
代码:
CFReadStreamRef readStream = NULL;
CFWriteStreamRef writeStream = NULL;
#if 1 // LONG WAY
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr); // ORIGINALLY WAS MISSING
addr.sin_family = AF_INET;
addr.sin_port = htons(5566);
int ret = inet_pton(AF_INET, "192.168.1.2", &(addr.sin_addr.s_addr)); // IPv4
assert(ret == 1);
NSLog(@"CONNECT");
CFDataRef address = CFDataCreate(kCFAllocatorDefault, (const UInt8 *)&addr, sizeof(addr));
assert(address);
CFHostRef macMini = CFHostCreateWithAddress(kCFAllocatorDefault, address);
CFRelease(address);
assert(macMini);
// (tried, makes not difference) CFHostScheduleWithRunLoop (macMini, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
CFStreamCreatePairWithSocketToCFHost(kCFAllocatorDefault, macMini, 5566, &readStream, &writeStream);
CFRelease(macMini);
#else // SHORT WAY
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, CFSTR("192.168.1.2"), 5566, &readStream, &writeStream);
#endif
assert(readStream);
assert(writeStream);
iStream = CFBridgingRelease(readStream);
oStream = CFBridgingRelease(writeStream);
[iStream setDelegate:self];
[iStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[iStream open];
NSLog(@"ISTREAM %@ status=%d", iStream, [iStream streamStatus]);
NSLog(@"ERR: %@", [iStream streamError]);
[oStream setDelegate:self];
[oStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[oStream open];
NSLog(@"OSTREAM %@ status=%d", oStream, [oStream streamStatus]);
NSLog(@"ERR: %@", [oStream streamError]);
最佳答案
问题是 sin_len
没有设置。拥有以上两组代码的好处是,您可以看到如何以任何一种方式完成任务。
关于ios - 为什么CFStreamCreatePairWithSocketToHost成功后CFStreamCreatePairWithSocketToCFHost失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792840/
我是 iOS/MacOS 编程的新手,还没有找到任何我能理解的例子。我想只需几行代码就可以做到这一点,很抱歉,如果这已经涵盖了,但我无法找到它。 我正在使用 CFStreamCreatePairWit
我正在尝试通过 TCP 将 iOS 设备连接到服务器。我目前正在使用函数 CFStreamCreatePairWithSocketToHost。我的问题是我想设置 iOS 设备需要使用的本地端口。有没
有人可以告诉我 CFStreamCreatePairWithSocketToCFHost 和 CFStreamCreatePairWithSocketToHost 调用之间的区别吗? 还有什么是 CF
用例 我正在使用套接字通过 CFStreamCreatePairWithSocketToHost() 发送和接收数据,并且我试图了解在发送多个集数据时如何完成此操作(即不只是 1 个请求)。 问题 目
我正在使用 CFStreamCreatePairWithSocketToHost 创建一个套接字 tcp 连接来获取写入流(我不想准备任何数据): CFStreamCreatePairWithSock
我使用 NSInputstream 和 NSOutputstream 来建立连接并发送数据。我的流对象具有打开和关闭流的功能。我使用以下代码: @interface Stream() { NS
我正在尝试与我的服务器建立 TLS 连接,但在 CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, str, 5555, &readStre
我注意到在我的程序中使用 CFStreamCreatePairWithSocketToHost 时出现随机 EXC_BADACCESS 错误,但仅限于 ios6 - 当使用 ios5 模拟器时(即使在
终于可以在这里问我的第一个问题了! 预先:Xcode 7.1.1、OS 10.11.2、iOS 9.0.2(在物理设备上) 我正在编写一个与我的 Raspberry Pi 通信的小应用程序。我有一些从
我面临使用 CFStreamCreatePairWithSocketToHost 创建与 iPV6 的套接字连接的问题。但是我能够为相同的端口号创建与 IPV4 的套接字连接。 尝试了所有场景,例如添
我是 swift 编程的新手。我正在尝试从我的 ios 应用程序连接到服务器套接字。我有一个 View Controller ,在一个按钮操作中,我调用了连接到套接字服务器的函数 let socket
CFStream 类是否符合 IPV6 标准?我正在使用 CFStreamCreatePairWithSocketToHost 连接到套接字而不是低级套接字 api CFStreamCreatePai
我是一名优秀的程序员,十分优秀!