title: Receiving data from UDP server on iOS app is not working from Linux server, but works from macbook pro
body: <p>BACKGROUND:
  I made an IPhone socket application based on UDP. It works as a client and server while it communicates with a Linux [Ubuntu] server.
  I’m using a GCDAsyncUdpSocket to send and receive data. I also have a back-up server/client application on my Macbook to test/verify the socket communication application. It simply acts like the Linux [Ubuntu] server. It works perfect.</p>
  
  <p>PROBLEM: I can’t receive any data from the Linux [Ubuntu] server.</p>
  
  <p>DETAILS:  I can successfully send data to the Linux server and it reacts/processes upon that data. But when the server sends replies or echoes, my iPhone app can't see/read it.
  A similar application I developed with a colleague for Android does read/see data from the server.
  Please see the code below. Cheers!</p>
  
  <p>This is the code for it: 
  .m file:</p>
  
  <pre><code>-(void)viewDidLoad
  {
      [super viewDidLoad];
      backGround.userInteractionEnabled=YES;  
      udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
  
      NSError *error = nil;
      if (![udpSocket bindToPort:0 error:&amp;error]) //check ff of dit werkt!
      {
          return;
      }
      if (![udpSocket beginReceiving:&amp;error])
      {
          return;
      }
  }
  
  
  - (IBAction)sendData:(id)sender 
  {
      NSString *msg = messageField.text;
      NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
      [self sendingRealData:data];
  }
  
  -(void)sendingRealData:(NSData *) Content
  {
      NSString *msg = [[NSString alloc] initWithData:Content encoding:NSUTF8StringEncoding];
      NSLog(@"msg is: %@", msg);
      NSString *host = [self getHost];
      int port = [self getPort]; 
  
      if ((port == 65536) &amp;&amp; (host == @"-1"))
      {
          NSLog(@"Port and IP are not filled in!");
          [self errorManag:2]; 
      }
  
      else if ((port == 65536) &amp;&amp; (host != @"-1"))
      {
          NSLog(@"return was -2");
          [self errorManag:1];
      }
  
      else if (host == @"-1")
      {
          NSLog(@"return was -1");
          [self errorManag:0]; 
      }
  
      else 
      {
          [udpSocket sendData:Content toHost:host port:port withTimeout:1 tag:tag];
          NSLog(@"Gestuurd");
      }
  }
  
  - (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data
    fromAddress:(NSData *)address
  withFilterContext:(id)filterContext
  {
      NSLog(@"niets."); 
      NSString *msg = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  if (msg)
  {
          NSLog(@"iets gekregen");
  }
  else
  {
      NSLog(@"Error convertion");
      //[self logError:@"Error converting received data into UTF-8 String"];
  }
  //NSString *test = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  //NSLog(@"%@",test); 
  //[udpSocket sendData:data toAddress:address withTimeout:-1 tag:0];
      NSLog(@"HMMMM");
      messageField.text = [[NSString alloc] initWithFormat:@"RE: %@", msg]; 
  }
  </code></pre>