Patent ID: 7051337

Claim:
A media streaming server configured to stream media to multiple clients, the media streaming server comprising: a set of server sockets, including: for each of the multiple clients, a separate control socket configured to receive media stream command events from the respective client; a single delivery socket configured to stream the media to all the multiple clients simultaneously; and a single quality control socket configured to receive media quality information events from all the multiple clients; a poller module configured to: poll one or more sockets in the set of sockets; and when an event is received at the polled socket, pass the event to a consumer object configured to handle the event; a set of consumer object classes derived from a single abstract base class of consumer objects, wherein the set of consumer object classes includes: a listener object class configured to listen for connection requests from new clients; a connection object class configured to handle command events received at polled sockets coupled to the multiple clients; and a receiver object class configured to process data received at a polled socket; and a set of task objects derived from a single abstract base class of task objects, wherein the set of task objects includes: a command task object configured to execute a command received as part of a command event; and a receive data task object configured to read data received at the media streaming server.