iphone sdk/mac - problem with sockets
My program consists of 2 parts - A server socket running on a different thread, and a client to test the server. I'm 99.9% sure that the server is correctly written (because I have tested it with a client socket), and all it does is returns "hello world" as a response. The server sits on port 3490.
Now what I tried to do is to call the server in the following way:
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"http://localhost:3490"]];
NSString *msg = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(msg);
But I get no response. I suspect that the problem is with the address http://localhost:3490
This problem appears on the iphone an on mac开发者_运维百科.
Any ideas?
Thanks
Alex
I have this problem on the iphone and on mac.
First, you almost certainly want to be using +[NSURL URLWithString:]
instead of +[NSURL fileURLWithPath:]
.
Second, since -[NSData initWithContentsOfURL:]
hides so much of what's going on to make the connection, you might consider switching to an NSURLConnection
you manage yourself, at least temporarily. The delegate methods it uses will give you a lot more visibility to / control over the various stages of the process. (As well as not blocking the thread on which you're running this code.)
It is possible that localhost resolves to an IPv6 address. Try using http://127.0.0.1:3490/
instead first before turning to NSURLConnection
.
精彩评论