ich glaube, wirklich event-driven ist das alles nicht. zumindest habe ich noch nichts dergleichen gefunden. meistens wird ein thread verwendet, der ständig den port abfragt, also im grunde dein (2.)

http://www.tetraedre.com/advanced/serial2.php

gruesse