iphone sdk / mac - 套接字问题

时间:2010-02-15 16:07:06

标签: iphone macos sockets port

我的程序由两部分组成 - 一个在不同线程上运行的服务器套接字,以及一个用于测试服务器的客户端。我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上的iphone上。

有什么想法吗?

由于

亚历

我在iphone和Mac上遇到此问题。

2 个答案:

答案 0 :(得分:2)

首先,您几乎肯定希望使用+[NSURL URLWithString:]代替+[NSURL fileURLWithPath:]

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

答案 1 :(得分:0)

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