Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2018, 02:49
morisco_17
 
Fecha de Ingreso: mayo-2012
Mensajes: 19
Antigüedad: 12 años
Puntos: 1
Como puedo parar la ejecución de una función

Me explico un poco, estoy haciendo un capturador de paquetes con python, para ello estoy utilizando la libreria de scapy y como lo estoy haciendo con entorno gráfico, pues también estoy utilizando la libreria de tkinter.

Tengo hechos 2 botones, uno que empieza a capturar paquetes, y otro para que detenga la captura de paquetes, el primero funciona bien, si en el sniff le meto o un tiempo de captura, o un numero determinado de paquetes a capturar, pero si no le pongo parametros, se pega capturando hasta que lo cierro.

Mi pregunta es:

Que le puedo poner a la función detener, para que se pare la captura de paquetes?

PD: No sé si también habría que ponerle algo a la función de capturar, hasta el momento he intentado con excepciones, pero no consigo que funcione.

PD2: Si alguno cree que con otra librería gráfica me iría mejor, que lo comente también, estoy dispuesto a sugerencias.

Os dejo por aquí el código para ver si me podéis orientar un poco.

Código:
#!/usr/bin/python
#-*-coding: utf-8-*-

import sys
from Tkinter import *
from scapy.all import *
import os
import netifaces

# Funciones
# ----------------------------------------------------------------------------------------------------------------------
def captura():
    try:
        a=sniff()
    except SystemExit:
        print("Programa finalizado")

    a.show()

    wrpcap("prueba_boton.pcap", a)

def detener():
    sys.exit()

def ver_interfaz_seleccionada(interfaces):
    print()

#-----------------------------------------------------------------------------------------------------------------------

# Crear ventana principal
ventana = Tk()
ventana.geometry("1920x1080+0+0")
ventana.title("APP")

# Agregando una imagen a un boton
imgCapturar = PhotoImage(file="images.png")
boton_captura = Button(ventana, image=imgCapturar, command=captura, height=50, width=50).place(x=0, y=0)

# Agregando una imagen a un boton
imgStop = PhotoImage(file="2.gif")
boton_stop = Button(ventana, image=imgStop, command=detener, height=50, width=50).place(x=50, y=0)

ventana.mainloop()
Un saludo.

Última edición por morisco_17; 08/03/2018 a las 03:14