Te cuento:
Cojo un caso más fácil para explicar e intentaré detallar cada campo.
Código :
Ver original+ 0.4132 1 0 ack 40 ------- 1 1.0 0.0 0 1
+: significa que se a generado un paquete, este campo podria coger los siguientes valores
Código VALORES:
Ver original+: Generado o añadido a la cola.
r: Recibido.
d:Eliminado.
-: Enviado o quitado de la cola.
0.4132: Instante de tiempo en el qual a pasado este evento.
1: Nodo origen (No tiene porque ser el origen , pueden ser nodos intermedios)
0: Nodo destino (No tiene porque ser el destino , pueden ser nodos intermedios)
ack: Tipo de paquete.
40: Tamaño en bytes.
-------: Flags (no utilizados)
1: Número del flujo de datos
1.0: El 1 indica el origen (Este si que es el origen) el .0 no lo utilizo de momento.
0.0: El primer 0 indica el destino (Este si que es el destino) el .0 no lo utilizo de momento.
0: Nº secuencia del paquete especifico del mismo flujo.
1: Nº secuencia usado por el programa en general.
Ahora te muestro de donde saco los datos. Es un trozo de un fichero out.tr:
Código Out.tr:
Ver original+ 0.4132 1 0 ack 40 ------- 1 1.0 0.0 0 1
- 0.4132 1 0 ack 40 ------- 1 1.0 0.0 0 1
r 0.4264 1 0 ack 40 ------- 1 1.0 0.0 0 1
+ 0.4264 0 1 tcp 1040 ------- 1 0.0 1.0 1 2
- 0.4264 0 1 tcp 1040 ------- 1 0.0 1.0 1 2
+ 0.4264 0 1 tcp 1040 ------- 1 0.0 1.0 2 3
- 0.5096 0 1 tcp 1040 ------- 1 0.0 1.0 2 3
r 0.5196 0 1 tcp 1040 ------- 1 0.0 1.0 1 2
Este fichero consta de miles de lineas y por eso lo paso por un programa para filtrar-lo. Me deja las lineas que a mi me interesan en otro fichero llamado OutFiltrat.tr (Para ello utilizo el programa anterior que hicimos con un if que mira si los nodos que quiero y el flujo deseado coincide con el de la linea y la escribe en el fichero)(De ahí venia que no quería que el strtok() me machacara la linea).
Por ejemplo, si a mi me interesan los paquetes que van del nodo 1 al 0 y de flujo 0 pues este programa me seleccionaría las siguientes lineas:
Código OutFiltrat.tr:
Ver original+ 0.4132 1 0 ack 40 ------- 1 1.0 0.0 0 1
- 0.4132 1 0 ack 40 ------- 1 1.0 0.0 0 1
r 0.4264 1 0 ack 40 ------- 1 1.0 0.0 0 1
Una vez aquí lo que yo necesito es obtener datos. Por ejemplo, cuanto tarda un paquete a ir de un nodo a otro, cuanto tiempo se tarda entre generación de paquetes, cuantos paquetes han sido generados o recibidos, entre otras cosas... Por eso te comentaba lo de releer el fichero para ir comparando cada linea con las de el fichero y así poder ir tomando los datos que necesite cosa que me evita mucha faena si lo tuviera que hacer sobre papel.
Espero haberte aclarado algo más la situación. Estamos en contacto.
Fran