1. A method for operating a computer, the computer having a multi-tasking operating system that includes a user space and a kernel in a kernel space, a receive buffer and a plurality of application processes, each of the plurality of application processes including a user application that runs in the user space, the method comprising the steps of: polling the receive buffer from a user polling function that runs in the kernel space; receiving in the receive buffer a data packet having a header and user data; reading the header of the received data packet; identifying a target application process of the plurality of application processes from the read header; delivering the user data to the identified target application process, and if the identified target application process is in a blocked state, changing the blocked target application process to an unblocked state; wherein the polling step is carried out by a polling application process that includes the user polling function.