Oh, what a mess. SIGHUP is generally have nothing to do with sockets, in case of out-of-band data you would receive SIGURG, and this out-of-band data will come via socket.
But OP is seems concerned about TCP packets with RST flag set, which is not the same as OOB. I'm not sure why OP needs it, but if he really needs to count TCP packets with RST flag he can use something like tcpdump, or Net::Pcap, or learn about raw sockets. I would use C to deal with it, but it depends on exact problem, which OP doesn't share with us.