C i C++ i obsługa sieci

0

Czym różni się C i C++ pod wina względem lina?

Czy w którymś z tych języków mozna zrobić niezależny "podprogram" tzn główny program może stworzyć pare wątków które są od siebie niezależne i wykonują sie równolegle, macie może jakieś materiały?

Macie jakieś dobre materiały na temat C i MySQL tzn komunikacja między nimi i jakieś rozwiązania.

Jak się ort! po linem z obsługi neta w C i C++ ? tzn jak nasłuchiwać strumienia danych itp.

Oczywiście program który chce napisac będzie konsolowy bez praktycznie tekstu.

0

http://programista.org/forum/viewtopic.php?t=5700 programowanie sieciowe pod linuxem i windowsem sporo linkow. Pod linuxem sa sockety czyste pod wingroza winsockety ;] Obsluga watkow, procesow itd oczywiscie rowniez sie rozni.

0

w sumie sam interfejs jest taki sam (oparty na socketach bsd) ale w windzie masz dodatkowych kilka funkcji i nieco inaczej sie zamyka

0

To może daj linka z pokazem wywołania nowego procesu w progsie pod lina, bym był dozgonnie wdzięczny.

Ile można uruchomić tych procesów pod linem jednocześnie? Bo by było fajnie jak by było można uruchomić około 16 tysiecy, ale 4 tysiacami tez nie pogardze :) Dużo by nie liczyly tylko raczej by wysyłały i odbierały małe pakiety.

0

Ile można uruchomić tych procesów pod linem jednocześnie? Bo by było fajnie jak by było można uruchomić około 16 tysiecy, ale 4 tysiacami tez nie pogardze :) Dużo by nie liczyly tylko raczej by wysyłały i odbierały małe pakiety.

Mozna 64k procesow, ale to jest bez sensu. Program, ktory potrzebuje odpalic wiecej niz kilkadziesiat procesow jest na 99.9% zle zaprojektowany. Po pierwsze to nie jest wydajne, po drugie zabiera zasoby systemowe innym programom, po trzecie jak ktos wpisze ps aux, to sie wkurzy. Jesli bedziesz odpalal nowy proces na kazdy odebrany komunikat, to zarzniesz tym maszyne, a wydajnosc serwera bedziesz mial beznadziejna. Poza tym skoro napisales, ze pakiety beda MALE, to zapewne czas ich odbierania i wysylania krotki, czyli wystarczy zapewne kilkanascie procesow, zeby osiagnac maksymalna wydajnosc przetwarzania. Dalsze zwiekszanie tej liczby powoduje szybki spadek wydajnosci.

Jesli piszesz serwer, ktory musi obslugiwac kilkadziesiat tysiecy sesji, to lepiej zbudowac sobie pule procesow/watkow i wykorzystywac ponownie te same procesy/watki do obslugi roznych zadan w ramach tej samej sesji. Tak robia wszystkie powazne serwery aplikacyjne. Nie chce Cie zniechecac, ale jest to zabawa dla zaawansowanych. Moze lepiej wykorzystac gotowy serwer aplikacyjny, ktory ma to zaimplementowane? Dla C++ nie widzialem, ale dla Javy jest tego na mase: np. Tomcat, Jboss (full wypas), WebLogic.. itp.

0

Dzięki za odpowiedź. Sam nie byłem przekonany że to wydajne będzie i spróbuje zaprojektować coś takiego ale z około 16 wątkami, jak myślisz do ilu wątków może działać? Maszyna bedzie miała tylko bazę i ten program a sama będzie wyposażona w 2GB ram i 2x procesor Xeon i oczywiscie dysiorka 15k obrotów na minutę.

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