With fileevent, the process can tell when data is present and only invoke gets or read when they won't block