Nije baš trivijalno kategorisati u jednoj reči to što si nabrojao, ali uglavnom su
ključne reči: Internet programiranje, soketi (socket), i sl.
Za početak pogledaj šta je socket:
http://en.wikipedia.org/wiki/Internet_socket
Najbolje je opredeli se za neko razvojno okruženje, recimo neko C++, pa iz njega
možeš krenuti sa izučavanjem svih tih internet tehnologija koje su zasnovane na
nekom protokolu.
Kako je Internet programiranje odavno postalo jako kompleksna oblast, tako su
se projektovale i posebne bibliteke za rad sa tim tehnologijama, koje olakšavaju rad.
Na primer:
http://www.indyproject.org/
... to je jedan Open Source projekat sa izvanrednim setom klasa za rad sa soketima.
Ja ga koristim u okviru Borland C++ Builder razvojnog okruzenja.