Pregunta

Soy nuevo en el cacao, pero las arreglé para conseguir una conexión (a un FTP) en funcionamiento, y he creado un manejador de sucesos para el NSInputStream iStream para alertar a cada respuesta (que también funciona).

Lo que pude conseguir es simplemente el mensaje de saludo y una conexión de tiempo de espera de 60 segundos, el cierre de la conexión de control.

EDIT:? Creo que mi pregunta es "sin necesidad de abrir cierre-> lo que sería una forma no terminar de lavar el flujoSalida

Después de buscar y encontrar stackoverflow una gran cantidad de problemas de escritura NSOutputStream (por ejemplo, Cómo utilizar NSOutputStream de ? mensaje de escritura ) y una gran confusión en mis éxitos de Google, pensé que iba a tratar de hacer a mi propia pregunta:

He intentado leer el documento developer.apple.com en OutputStream, pero parece casi imposible para mí enviar algunos datos (en este caso sólo una cadena) a la "conexión" a través de la NSOutputStream ostream.

- (IBAction) send_something: sender
{
const char *send_command_char = [@"USER foo" UTF8String];
send_command_buffer = [NSMutableData dataWithBytes:send_command_char length:strlen(send_command_char) + 1];
uint8_t *readBytes = (uint8_t *)[send_command_buffer mutableBytes];
NSInteger byteIndex = 0;
readBytes += byteIndex;
int data_len = [send_command_buffer length];
unsigned int len = ((data_len - byteIndex >= 1024) ?
                    1024 : (data_len-byteIndex));
uint8_t buf[len];
(void)memcpy(buf, readBytes, len);
len = [oStream write:(const uint8_t *)buf maxLength:len];
byteIndex += len;
}

lo anterior no parece ser el resultado de cualquier evento utilizables. escribiéndola bajo NSStreamEventHasSpaceAvailable veces dar una respuesta si el correo no deseado ftp por mantener la creación de nuevas instancias de conexión y seguir enviando algún comando siempre ostream tiene espacio libre. En otras palabras, no hay nada "derecho" y por lo que estoy todavía no está claro cómo enviar correctamente un comando para la conexión. ¿Debo abrir -> escritura -> cerrar cada vez que quiero escribir en ostream (y por lo tanto a la ftp) y luego puedo esperar una respuesta (evento hasBytesAvailable en iStream)? EDIT:. No se parece que hay

Por alguna razón se me hace muy difícil encontrar cualquier tutoriales claras sobre este asunto. Parece que hay más de unos pocos en la misma posición que yo:? Claro cómo utilizar ostream escribir

Por favor! Cualquier poco que puede ayudar a aclarar esto es muy apreciada!

Si es necesario puedo escribir el resto del código.

  • Chuck
¿Fue útil?

Solución

De acuerdo, por lo que 10 horas 28 puntos de vista y no hay respuestas / comentarios, pero eso está bien, porque yo acabo de resolver con un poco de buena ayuda de un muy, muy amable irssi codificador (sin lamer el trasero destinado;)).

Se propone que traté de std :: endl'e que (nueva línea + ras), y así he intentado simplemente añadiendo el carbón de nueva línea (\ n, 0x0A) y funcionó perfectamente!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top