Как да внедрим клиент-сървър udp multicast в една програма?

Написах сървър и клиент като отделни приложения. Те комуникират чрез UDP Multicast (защото имам нужда всеки, който се присъедини към групата, да може да чете и пише съобщения). Сега имам два прозореца, но целта ми е да създам една проста програма за чат, но не знам как да слушам и изпращам едновременно. Трябва ли да създам 2 сокета? Или мога да използвам само един? Дори се опитах да обединя двете приложения в едно, но не успях (знам, знам.. но бях доста отчаян).

Търсих в google tut, но не успях.

Използвам c++.


person roman    schedule 18.05.2011    source източник
comment
Какво лошо има в това да имате сървър с множество свързани клиенти, които изпращат съобщения един на друг? Това е твърде неясно за добър отговор, без да знаете повече за това, което сте внедрили в момента и какви са вашите изисквания ...   -  person AJG85    schedule 19.05.2011
comment
Имам LAN с 10-12 клиента и се нуждаем само от проста програма за чат, нямаме нужда от сървъри, само от просто приложение. Надявам се, че съм достатъчно ясен. Съжалявам за моя език, не съм роден говорител, така че може би затова публикацията ми е толкова загадъчна :)   -  person roman    schedule 19.05.2011
comment
Е, за да заявите очевидното, можете просто да използвате безплатна програма като Skype, но имах предвид изискванията за кодиране за вашия проект и подробности за това, което сте внедрили в момента. Най-простата система за чат, която бихте могли да приложите, би била базирана на браузър, използвайки HTML публикации, но тъй като вече имате мултикаст, може да сте в състояние да комбинирате слушатели с излъчвания в една програма. Ето нещо за просто вдъхновение: ntrg.cs.tcd.ie/ undergrad/4ba2/multicast/antony/example.html   -  person AJG85    schedule 19.05.2011
comment
Да, това е, което правя - да комбинирам слушатели и предавания. Благодаря за линка!   -  person roman    schedule 19.05.2011


Отговори (1)


Можете да използвате един или два сокета, всичко зависи от това дали искате да се свържете към определен мрежов адаптер и дали искате да използвате unicast & broadcast пакети. Често е по-лесно да управлявате едно за изпращане и едно за получаване.

За да слушате изпратени мултикаст пакети на същия хост, проверете опцията IP_MULTICAST_LOOP socket, като отбележите, че тя се прилага по различен начин в Windows спрямо Unix.

person Steve-o    schedule 18.05.2011