This project involves audio streaming using customized protocol to stream the audio from server to client with added reliability. The client will ask for list of available songs on the server. The server will send the list to the client. From the list the client can select any song it wants. Also play, resume, pause, help commands will be available for client to control audio streaming. This project uses the concept of socket programming, multithreading and basic concepts of reliable data transfer.