Aplikacja klient-server – o czym poczytać, na jakie tematy się doedukować?

0

Chciałbym poprawić swoje umiejętności i zrobić w C++ np. grę w statki, lub jakiś prosty chat. Lub cokolwiek co działałoby na zasadzie interakcji z drugim użytkownikiem, na dwóch różnych komputerach, online.

O ile zrobienie takiej gry w statki jako gry samej w sobie (single player) nie byłoby wielkim wyzwaniem dla mnie, to zrobienie żeby to działało online (jak to poprawnie powinienem nazwać?) stanowi już ogromny problem.

Pytanie brzmi: o czym poczytać, na jakie tematy się doedukować? Pewnie powinienem się dowiedzieć coś o 'socketach', ale oprócz tego co jeszcze?

1

siec/sockety zdecydowanie tak. w standardzie nie widzialem, ale z tego co sie orientuje to dla c++ w kodzie zwiazanym z siecia rzadzi teraz asio wiec warto poznac. dobrze by tez miec pojecie o wielowatkowosci/synchronizacji - a tu juz standart ma duzo potrzebnych rzeczy (ale nie wszystko). choc mozliwe ze jak sie napisze wszystko asynchronicznie to ta wiedza nie bedzie bezposrednio wykorzystana. a gdyby w asio bylo za malo asynchronicznosci to mozesz jeszcze poszukac czegos z "reactive" w nazwie (gugiel twierdzi: RxCpp).

1

Osobiście sugeruję zapoznanie się z następującymi zagadnieniami:

  1. Działanie socketów. Operacje synchroniczne vs asynchroniczne.
  2. TCP vs. UDP, numery portów, adresacja w sieciach ip. sieci prywatne vs publiczne, działanie DNS.
  3. Kodowanie przesyłanych informacji, network byte order, kodowanie tlv, json, HTTP.
  4. Frameworki rpc (polecam gRPC).
  5. Metody synchronizacji pamięci, wielowątkowość.
  6. Metody synchronizacji w systemie rozproszonym - http://students.mimuw.edu.pl/SR-ZSI/Wyklady-html/03_synchro/03_synchro.html , interesuje cię przede wszytkim zegar logiczny (aka numerowanie wiadomości ;) )

Powodzenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1