/edit: Bine ai venit pe forum!
Folosesti sockets (System.Net.Sockets)
Librarii C#/.NET pt sockets nu stiu, da google. (cum e RakNet pt C++ de ex)
Ca sa il faci sa mearga imediat, (adica TCP) nu iti ia decat cateva ore sa inveti de la 0 (cel putin mie atat mi-a luat)
Singurul 'gotcha' la partea asta e ca un pachet 'mare' (mai mare decat cativa kb parca, nu mai stiu exact) o sa fie impartit in alte pachete mai mici, si trimise separat, asa ca trebuie sa unesti tu datele la loc.
Cu TCP, iti vin mereu in ordine si nu se pierd, asa ca treaba de a le pune la loc e banala: doar pui un int la inceputul pachetului care ii zice dimensiunea totala a datelor.
Parerea mea este ca e mai bine sa-l faci sa mearga acum (TCP), si dupaia, cand totul sa pus cat-decat pe picioare/merge copacel, poti sa treci pe UDP, si sa ai control mai puternic. Pentru ca in fond, la inceput nici nu prea stii ce trebuie sa controlezi

Succes.