There a few ways to skin this problem (you could use web /WCF services for example).
If you want to transfer point to point, you can use the default
serializers namespace[
^], which provide classes that take over the task of converting the [array] object to a string, then you can deserialize back to an array. This requires a
single tcp transfer. The essential thing is that the client and server use the same formatter. For your string a
Binary Formatter[
^] should be sufficient. There is an example in the last link, but in summary:
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(myStream, myArray);
Then on the server:
BinaryFormatter formatter = new BinaryFormatter();
string[] desrialized = formatter.Deserialize(inputStream) as string[];