【问题标题】:iphone sdk/mac - problem with socketsiphone sdk/mac - 套接字问题
【发布时间】:2010-02-16 00:29:14
【问题描述】:

我的程序由两部分组成 - 在不同线程上运行的服务器套接字和用于测试服务器的客户端。我 99.9% 确信服务器编写正确(因为我已经使用客户端套接字对其进行了测试),它所做的只是返回“hello world”作为响应。服务器位于端口 3490。

现在我尝试通过以下方式调用服务器:

NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"http://localhost:3490"]];
    NSString *msg = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(msg);

但我没有得到任何回应。我怀疑问题出在地址http://localhost:3490

这个问题出现在iphone和mac上。

有什么想法吗?

谢谢

亚历克斯

我在 iphone 和 mac 上都有这个问题。

【问题讨论】:

    标签: iphone macos sockets port


    【解决方案1】:

    首先,您几乎肯定希望使用+[NSURL URLWithString:] 而不是+[NSURL fileURLWithPath:]

    其次,由于-[NSData initWithContentsOfURL:] 隐藏了建立连接的大部分内容,您可以考虑切换到您自己管理的NSURLConnection,至少暂时如此。它使用的委托方法将使您对流程的各个阶段有更多的可见性/控制。 (以及不阻塞运行此代码的线程。)

    【讨论】:

      【解决方案2】:

      localhost 可能解析为 IPv6 地址。在转向NSURLConnection之前先尝试使用http://127.0.0.1:3490/

      【讨论】:

        猜你喜欢
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-09
        • 1970-01-01
        • 1970-01-01
        • 2011-05-04
        • 2011-05-14
        相关资源
        最近更新 更多