0

我正在尝试从 iPad 建立一个简单的 TCP 套接字连接。

我使用模拟器启动并运行了一组代码,它运行良好。

但是当我在 iPad 上运行这段代码时,它失败了。

这是代码...

CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.1.10", 19997, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;

[inputStream setDelegate:self];
[outputStream setDelegate:self];

[inputStream open];
[outputStream open];

代码挂在 [inputStream open]; 然后我得到错误:

    The Operation Couldn't be completed.  Operation timed out.  Code 60.

我在这里错过了一些简单的东西吗?iOS权限还是什么?为什么它会在模拟器上工作?我是 iOS 开发的新手。

谢谢你的帮助!

4

1 回答 1

1

我在我的 iPhone 上测试了你的代码,它运行良好。不过,连接的“另一端”可能是个问题。

您应该使用 www.google.com 端口 80 测试相同的代码。

您也可以在另一个项目或项目中的另一个“点”测试它。也许“你调用代码的地方”有问题

您还应该考虑只为这些连接使用现有框架,而不是自己编写所有内容。

我为此使用 Google Async Sockets。

于 2013-04-08T18:20:54.273 回答