z drugiej strony jak widzisz (w dużym skrócie) komunikacje z wykorzystaniem HTTP?
Rozwiazanie bardzo proste. Na serwerze stawiasz jakis serwer aplikacyjny (w zaleznosci od skomplikowania tej warstwy moze to byc apache + php, tomcat, jboss [dwa ostatnie to Java]). Twoja aplikacja wysyla requesty do serwera przekazujac argumenty GET-em lub POST-em.
lub w nagłowkach itd. Serwer funkcjonalności twoje apliakcji piszesz w czym chcesz i umiesz (np. u mojego ISP w module czyli szybkie jest wyłącznie PHP)
Dzieki takiemu rozwiazaniu nie musisz sie martwic o warstwe sieciowa - tzn. nie musisz sam pisac serwera, ktory by nasluchiwal na jakims porcie, odbieral nadchodzace polaczenia i tworzyl watki do ich obslugi. Wszystko za Ciebie zalatwi serwer aplikacyjny.
i używasz bardzo popularnej technologii, każdy kumpel ci pomoże.
Tylko zwrot wyniku 'od serwera' nie jest ślicznym kolorowym wizualnym HTML-em, ale co ci sie wyda: status udało się/nie w nagłowkach 200,30x,50x,40x, albo więcej wyników w TXT lub XML (dla elegancji pamiętać o mine/type)
Algorytmy serwerowe debuggujesz na pomoca przeglądarki internetowej.
Chcesz szyfrować kanał? 10 minut roboty.
Dasz kompresję (gzip) masz oszczędnośc na GPRS.
A porównaj: znajdź błąd na aplikacji Socketowej.
HTTP z tytułu że i tak jest 'przerywany' dobrze znosi chwilowe zaniki połączenia. Na łączu bezpośrednim na bazę nie jest tak dobrze, zrób 100 połączeń (plus 1/3 wiszących jakiś czas bo zerwanych) admin ci urwie [----] coś. Transakcje na bazie też wiszą, trzymają cząstkowe dane, będą kiedyś wycofane itd itd.
Poczytaj o API Googla (GData API). Wszytko na http (dośc ambitne!!!)
Z wad http co do socketa, głowna, że nie masz fajnego kanału jak serwer chce ci coś powiedzieć a ty nie słuchasz. Musisz coś okresowo robić (odpytywać).