NetworkReader/Writer, NetworkServer.SendToClient, NetworkWriter.StartMessage c#

Hi im trying to send and recive network strings from server to specific clients and from clients to server, NetworkServer.SendToClient seems to good for sending from server to a specific network client id, but i have no idea how to recive that, ive also been looking at network reader and writer classes, but as far as i can see i asume this only works from server to all clients, as i havent found any way to write to specific clients…

Is there any way to setup an event that triggers when data is received on server and client, as calling a read function on say update is very inefficient and a waste of processing, all i want to do is send text to clients and to the server, so that they can parse the text and handel any reponce…

Ive seen NetworkWriter.StartMessage as follows:

short myMsgType = 444;
 NetworkWriter writer = new NetworkWriter();
writer.StartMessage(myMsgType );
writer.Write("test data");
writer.FinishMessage();
myClient.Send(writer, 0);

This seems exacly what i need however the class dosent say wether this works from server to clients, and i am not sure what myClient.Send is refering too as if im aware .Send dosent take a writter object, theres a SendWriter ive seen though, the unity wiki is fragmented and not really compleate whcih is making it hard to find out what to do… and sometimes you get one part saying this and then another part saying it a compleatly diferent way.

look at this sample project:

http://forum.unity3d.com/threads/master-server-sample-project.331979/