¿Cómo se comunica el servidor de juegos móvil Netty con el cliente de juegos iOS?

Este gran tutorial explica bien este tema: Cliente de iPhone para multijugador con NSStreams.

Actualización: para evitar molestias con su propia implementación de sockets, intente usar square / SocketRocket

Manera Hardcore:
Supongo que su pregunta es más general y no se limita a Netty … así que en iOS puede usar NSStreams. Aquí hay una guía Introducción a la Guía de programación de Stream para Cocoa.

La idea es que programe NSStream en el ciclo de ejecución y espere las devoluciones de llamada.

En Mac OS tiene un método + getStreamsToHost:port:inputStream:outputStream: que le proporciona flujos de entrada y salida. De manera predeterminada, en iOS, este método no está implementado, pero puede usar el nivel C inferior para obtenerlos y enviarlos a NSStream, o usar la categoría de listo de este Q&A de Apple: Uso de NSStreams para una conexión TCP sin NSHost.

@interface NSStream (QNetworkAdditions)

+ (nulo) qNetworkAdditions_getStreamsToHostNamed: (NSString *) hostName
puerto: puerto (NSInteger)
inputStream: (fuera NSInputStream **) inputStreamPtr
outputStream: (fuera NSOutputStream **) outputStreamPtr;

@fin

@implementation NSStream (QNetworkAdditions)

+ (nulo) qNetworkAdditions_getStreamsToHostNamed: (NSString *) hostName
puerto: puerto (NSInteger)
inputStream: (fuera NSInputStream **) inputStreamPtr
outputStream: (fuera NSOutputStream **) outputStreamPtr
{
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;

afirmar (hostName! = nil);
afirmar ((puerto> 0) && (puerto <65536));
afirmar ((inputStreamPtr! = NULL) || (outputStreamPtr! = NULL));

readStream = NULL;
writeStream = NULL;

CFStreamCreatePairWithSocketToHost (
NULO,
(__bridge CFStringRef) hostName,
Puerto,
((inputStreamPtr! = NULL)? & readStream: NULL),
((outputStreamPtr! = NULL)? & writeStream: NULL)
);

if (inputStreamPtr! = NULL) {
* inputStreamPtr = CFBridgingRelease (readStream);
}
if (outputStreamPtr! = NULL) {
* outputStreamPtr = CFBridgingRelease (writeStream);
}
}

@fin

More Interesting

¿Las empresas con una base de código con Objective-C se están cambiando a Swift, o todavía se están desarrollando con Objective-C?

¿Cuáles son algunos ejemplos concretos de los beneficios del dinamismo en Objective-C?

Aplicaciones móviles: ¿Debo optar por el desarrollo nativo de iOS o el desarrollo multiplataforma con PhoneGap / Xamarin?

¿Qué es mejor al desarrollar tu primera aplicación? ¿Usa un software multiplataforma como Xamarin o diferentes versiones para diferentes plataformas?

¿Quiénes son los mejores servicios y desarrollo de aplicaciones móviles para Android e iOS a nivel mundial?

¿Hay alguna sala de chat común para desarrolladores de iOS y Android? Lo que ayudará a obtener ayuda rápida en lugar de esperar respuestas en los foros durante días.

¿Qué curso es necesario para aprender a desarrollar aplicaciones iOS?

¿Por qué las tasas de adopción de las versiones de Android son significativamente más bajas en comparación con iOS?

¿Cómo diseñar e implementar interfaces de usuario personalizadas para aplicaciones iOS?

¿Cuáles son algunos proyectos de iOS de código abierto de arquitectura bien diseñados que vale la pena aprender?

¿Cuáles podrían ser las mejores ideas para desarrollar aplicaciones iOS?

¿Hay algún IDE en la nube que permita el desarrollo de aplicaciones iOS?

¿Cuál es la mejor plataforma para profesionales en el mundo de los negocios, iOS o Android?

¿Cómo puedo encontrar fácilmente un desarrollador de aplicaciones para iPhone?

Cómo desarrollar la aplicación IOS en el sistema operativo Windows en lugar de Mac Os