chce napisac sieciowy komunikator w c i teraz mam taki problem:
1. czy napisac klienta i serwera osobno
2. czy napisac klienta i serwera w jednym?
Ad.1
klient laczy sie z serwerem, serwer przekazuje wiadomosc dalej do drugiego rozmowcy
Ad.2
klienci lacza sie bezposrednio ze soba bez udzialu serwera
ktore rozwiazanie lepsze i jak to zrobic (pomocne funkcje) ?
- czy w pierwszym przypadku nalezy tworzyc kilka socketow (jeden dla serwera i kazdy nastepny dla pary rozmawiajacych)
- jak zrobic aby klient mogl rozmawiac z innym klientem bez blokowania terminala
[c] komunikator
Moderatorzy: Moderatorzy, Administratorzy
Re: [c] komunikator
A jak chcesz wykorzystywać swój komunikator? Jeśli do rozmowy dwóch osób to takie rozwiązanie jest lepsze (prostsze w implementacji). Co jednak zrobisz gdy będziesz chciał dołączyć trzecią i czwartą osobę? (nie mówię, że się nie da oczywiście).mitek pisze:Ad.2
klienci lacza sie bezposrednio ze soba bez udzialu serwera
Druga sprawa to pozostawianie wiadomości osobie chwilowo nieobecnej - jeśli chcesz coś takiego zrobić to moim zdaniem wypadałoby projektować aplikację klient-serwer.
Nie rozumiem pytaniamitek pisze:jak zrobic aby klient mogl rozmawiac z innym klientem bez blokowania terminala
Slackware Current + kernel 2.6.32.6 + KDE 3.5.10
registered linux user #412954
[url=http://userbars.org][img]http://img162.imageshack.us/img162/9958/linux1hf8.jpg[/img][/url]
registered linux user #412954
[url=http://userbars.org][img]http://img162.imageshack.us/img162/9958/linux1hf8.jpg[/img][/url]
Re: [c] komunikator
ja jako projekt pisałem kiedyś chat i wybrałem rozwiązanie 1
z tym, ze tam wszyscy pisali do wszystkich, z możliwością wysłania pywatnej wiadomości
-- obsługa socketów
-- obsługa interfejsu użytkownika
no to poprostu wątki (patrz pthread)
z tym, ze tam wszyscy pisali do wszystkich, z możliwością wysłania pywatnej wiadomości
nie wiem, czy dobrze rozumiem, ale jeżeli chodzi Ci o to, że potrzebne będzie jednoczesnie:mitek pisze:jak zrobic aby klient mogl rozmawiac z innym klientem bez blokowania terminala
-- obsługa socketów
-- obsługa interfejsu użytkownika
no to poprostu wątki (patrz pthread)
Ostatnio zmieniony 2008-09-08, 14:15 przez ulises, łącznie zmieniany 2 razy.
This is Linux land. In silent nights you can hear the Windows machines rebooting.
Re: [c] komunikator
wątki są dla cieniasów - "prawdziwi programiści" używają select'aulises pisze:no to poprostu wątki (patrz pthread)
PP
Re: [c] komunikator
Jako projekt pisałem rozwiązanie 2 z możliwośćią rozmowy każdy z każdym, obsługa stanów i takie tam (działało na multicascie). Całość napisana na selectie -- generalnie polecam, fajna sprawa. Jeżeli chodzi o to co Ty chcesz napisać to zależy czy chcesz coś takiego jak talk, gdzie rozmawiają ze sobą tylko dwie osoby i przynajmniej jedna wie jak i może się dostać do drugiej to rozwiązanie 2 jest chyba faktycznie łatwiejsze -- patrz talk. W przeciwnym wypadku lepiej jednak 1.
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
Re: [c] komunikator
talk dobra sprawa... ale fajna bajerka jest fifo komunikacja miedzy procesami
Re: [c] komunikator
Aha, jeśli mowa o select() a wątki -- w dobie wielordzeniowych procesorów coraz poważniej należy się zastanawiać nad tworzeniem programów (a nawet i algorytmów, ale to nie dotyczy omawianego problemu) wielowątkowych. (Nie zmienia to jednak faktu, że selecta warto i tak poznać i jeżeli jeszce go nie znasz to jest dobry moment.)
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.