2

I have to implement an iOS application, which connects to a web server and receives events from it, i.e. server long polling. I plan to use the AsyncSocket library.

My idea is to open a socket on the iPhone, send it to the server the first time I connect to it, and then listen infinitely to the socket and update the GUI accordingly to the events the server sends to it. Here are my questions:

  1. Is this a correct approach and if not - how it should be done?
  2. Can the server send data to the socket I give to it (as long as the socket is opened), if the iPhone and the server are on different networks, and the iPhone is on a local network?
cpprulez
  • 896
  • 2
  • 9
  • 21

1 Answers1

1
  1. Yes. 2. Yes.

On the fone, you will get information arriving in to the fone probably something like this:

-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData*)data withTag:(long)tag
    {
    [data getBytes:&getMe length:sizeof(CommProt)];
    // do not forget to roll in the next read...
    [sock readDataToLength:sizeof(CommProt) withTimeout:-1 tag:0];
    // now parse that command
    }

and on the fone you will send information from the fone quite likely something like this (there are a couple of different approaches)...

-(void) mySendStringData:(NSString *)sss
    {   
    // so easy, thank goodness for AysncSocket
    NSData* data = [sss dataUsingEncoding: NSASCIIStringEncoding];

    [theSocket writeData:data withTimeout:0.5 tag:0];
    [theSocket writeData:quickCR withTimeout:0.5 tag:0];
    // (in the protocol at hand, we are using a delimiter on the end (a CR))
    }

Note. It is possible this post i made could be helpful to you: it gives the lowdown on protocols in iOS:

Tablet(iPad/Android)-Server Communication Protocol

I hope it helps.

Conceivably this could help iPad and Arduino Integration and this secret knowledge could help Client/Server GKSessions Cheers

Community
  • 1
  • 1
Fattie
  • 27,874
  • 70
  • 431
  • 719
  • Huge thanks! :) I'll give it a try :), and if I get stuck on something, I'll ask again, if I may :) – cpprulez Nov 23 '10 at 08:19