我的程序由两部分组成 - 一个在不同线程上运行的服务器套接字,以及一个用于测试服务器的客户端。我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上遇到此问题。
答案 0 :(得分:2)
首先,您几乎肯定希望使用+[NSURL URLWithString:]
代替+[NSURL fileURLWithPath:]
。
其次,由于-[NSData initWithContentsOfURL:]
隐藏了很多连接的内容,因此您可以考虑切换到自己管理的NSURLConnection
,至少是暂时的。它使用的委托方法将为您提供对流程各个阶段的更多可见性/控制。 (以及不阻止运行此代码的线程。)
答案 1 :(得分:0)
localhost可能会解析为IPv6地址。在转向http://127.0.0.1:3490/
之前,请先尝试使用NSURLConnection
。