¿Existe un mecanismo en Objective-C similar a Netty en Java para desviar protocolos TCP a UDT en la capa de transporte

¿Hay un mecanismo en Objective-C similar a Netty en Java para desviar los protocolos TCP a UDT en Transport Layer.

Ahora quiero implementar la request y la respuesta HTTP (se ejecuta por TCP de forma pnetworkingeterminada) para ejecutar UDT desde mi aplicación.

  1. es posible?

  2. ¿Hay algún mecanismo incorporado en iOS para esto?

Si desea utilizar HTTP de lo que sugiero NSURLConnection class. Por ejemplo, para usar la request POST con encabezados haga algo como esto:

int kTimeoutInterval = 30; NSString *post = @"Something to post"; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding]; NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]]; NSString *link = @"http://some_link"; link = [link stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:link] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:kTimeoutInterval]; [request setURL:[NSURL URLWithString:link]]; [request setHTTPMethod:@"POST"]; // set some header entries, for example: //[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; //[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[postLength length]] forHTTPHeaderField:@"Content-Length"]; [request setHTTPBody:postData]; NSError *error; NSURLResponse* response=nil; NSData* data=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

Ahora tenga cuidado, se trata de una request síncrona, y bloqueará el hilo en el que se ejecuta para el time de ejecución o el time de espera definido en la constante kTimeoutInterval. Esto se puede cambiar al modo asíncrono con:

 [NSURLConnection connectionWithRequest... 

en cuyo caso la respuesta vendrá a través del método delegado. Para decidir qué método funciona mejor para usted, revise la documentation de NSURLConnection. Espero que esto ayude…

No hay nada tan conveniente como Netty. Sin embargo, es posible que desee echar un vistazo a la guía de progtwigción de CFNetwork, específicamente las secciones sobre Comunicación con serveres HTTP . Esto describe los methods CFHTTPMessage que se pueden usar para crear y serializar requestes HTTP y decodificar respuestas. A medida que serializan y descifran de los almacenamientos intermedios, usted es libre de transmitir los posts como lo desee. Si ya tiene una implementación de UDT, entonces debería ser razonablemente sencillo.

Tenga en count que usted es responsable de codificar / descodificar el cuerpo HTTP apropiadamente, pero si su protocolo de service web es bastante simple, podría ser solo un caso de serialization / deserialization de cadenas.