UTNianos

Versión completa: Tips y preguntas para el TP de Sistemas Operativos
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas, como el tp este es tan horrible se me ocurrio crear un topic para poder ir dejando esas cosas que nos fueron pasando para que no les pase a otros.

Hace bastante que la hice asi que no me acuerdo mucho y otras muchas cosas cambiaeron pero bueno, voy dejando cosas.

Obviamente hay que leer la guia Beej e investigar mucho, pero quizas logremos simplificar un poco las cosas asi.
  • El primer problema con el que me encontre si mal no recuerdo fue el teclado. ¿Como podia leer del teclado si me bloqueaba para leer sockets? La posta esta en que el teclado se puede usar como un file descriptor más y meterlo a la funcion select junto a los sockets. Entonces el programa va a estar escuchando los sockets al mismo tiempo que al teclado.
  • Si quieren ver los paquetes que pasan por su red puede usar el comando tshark ( o el programa wireshark si tienen para correr aplicaciones graficas).
    El comando se tira normalmente con sudo y se usa asi:
    tshark -i[interface_web] [filtros] -w[archivo_de_salida]
    [interface_web] acostumbra ser eth0, pero pueden tirar un ifconfig para ver cual va.
    [filtros] puede ir vacio capturando todo, los filtros mas comunes son:
    ip host [ip_a_la_que_te_conectas]
    tcp port [puerto_al_que_te_conectas]

    para ver el archivo capturado se hace con
    tshark -r [archivo_de_salida] -xV > [archivo_decodificado]

Cualquier pregunta dejenla aca.
Los que ya pasaron por este tp vayan dejando sus tips asi para principio de año hay una buena base para que usen los alumnos, no sean putos.
Antes de una entrega (final o parcial) vayan al laboratorio en donde les van a probar las cosas.

Por mas que te dan las MV, a veces pasa el tipico "Te juro que en casa me compilaba"
Up. A ver si colaboramos en que la gente tenga menos ataques nerviosos
Muy buena idea, no puedo usar el mismo socket para enviar/recibir datos, no?
Si podes. Tenes que tener cuidado en caso de utilizar funciones bloqueantes de no tener problemas con eso nomas.

Por ejemplo, si utilizas un recv bloqueante, fuera de un select, y el servidor del otro lado no te envia nada, no vas a poder realizar el send correspondiente. De hecho no vas a poder hacer nada en un proceso normal, porque vas a estar bloqueado =P
URLs de referencia