Hozzászólások
Sziasztok!
Nemolyan régen kezdtem el foglalkozni Linuxon a socket-ekkel. Az alapfilozófiát már hozzávetőlegesen értem.
A következő lenne a kérdésem:
Szeretnék egyszerű chat servert és klienst kialakitani C nyelven, a clienst esetleg python-ban későbbiekben. Ismereteim szerint a TCP socketek csak két pont között képesek kommunikálni és nem tudnak broadcastot, az udp csomagokat pedig lehet broadcast cimekre kűldeni, vagyis űzenetszórás szerűen! Lehet fogalomzavaraim vannak, de ugy gondolom chat programhoz az udp socketekre lesz szkségem. Sajna nem sok tapsztalatom van, ezért kérném a segitségeteket, tanácsokat, esetle url-eket. Thx
BZsA
Szia,
A Broadcastal az a problema, hogy csak az aktualis subnetben (alhalozatban) fogod tudni elkapni, igy az interneten keresztuli chat programot nem igazan lehet vele irni. Ha mindenkeppen "uzenetszorasos" megoldast akarsz valasztani akkor a multicast fele nezelodj. Bar ez lenyegesen nehezebb...
Remelem segitettem egy picit...
tcp-vel szokás ilyet. Minden klienshez külön fd-vel.
A libc doksijában (info) van is erre egy egszerű példa, amivel el lehet indulni.
Két irányba is elindulhatsz eztán:
1. minden klienst egy külön szálon kezelsz, ez egyszerű, de hamar elfogynak az erőforrások (1-2 ezer kliens fölött biztosan elhalálozik, de lehet, hogy hamarabb)
2. egy szálon kezeled az összes kliens-t egy állapotgéppel. Ha kihasználod a Linux kernel epoll (man epoll) szolgáltatását, akkor több 10 ezer klienst is kiszolgálhatsz.
99%, hogy nem broad- v. multicast kommunikációt szeretnél, inkább szoftverből küldd el mindenkinek.
TCP v. UDP: gyakorlatilag mindkettővel lehet, de a TCP-vel érdemes :)
populáris intro: Beej's Guide to Network Programming
have fun
Rendben, kösz szépen minden hozzászólást.
BZsA
[quote:4444d12e40="BZsA"]Sziasztok!
Nemolyan régen kezdtem el foglalkozni Linuxon a socket-ekkel. Az alapfilozófiát már hozzávetőlegesen értem.
A következő lenne a kérdésem:
Szeretnék egyszerű chat servert és klienst kialakitani C nyelven, a clienst esetleg python-ban későbbiekben. Ismereteim szerint a TCP socketek csak két pont között képesek kommunikálni és nem tudnak broadcastot, az udp csomagokat pedig lehet broadcast cimekre kűldeni, vagyis űzenetszórás szerűen! Lehet fogalomzavaraim vannak, de ugy gondolom chat programhoz az udp socketekre lesz szkségem. Sajna nem sok tapsztalatom van, ezért kérném a segitségeteket, tanácsokat, esetle url-eket. Thx
BZsA
ftp -p meditor.hu
login: public
passwd: nyomj egy entert.
Lépj be a c_examples könyvtárba és a Mediag.tar.gz-t töltsd
le, ebben van egy interneten keresztüli socket kezelési példa.
Használd egészséggel. Üdv: meditor