How will I decide whether my application should use a socket or host a webservice? what i am trying to find is on what scenarios is socket is more suitable than a webservice?
That depends on what kind of software runs on both ends of the wire, and what kind of data they want to exchange. Also, WS run on top of HTTP -which follows a request/response model- so both sides are not equal.