Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 05:30 21.05.24 
Компютри и Интернет
   >> Perl
Всички теми Следваща тема *Кратък преглед

Тема izprashtane na danni kum multiple forked socketsнови  
Автор azo (Azazel)
Публикувано10.09.03 18:40



Zdraveite ..purvo iskam da se izvinia, che ne pisha na kirilica, no v momenta niamam takava vuzmojnost.
A sega za problema ...
pisha si IRC botche ...fork-nah DCC CHAT konekciite (user prashta request kum bot-a i bot-a se connectva kum dadeno ip i port)
vuprosa e ...
ako imam poveche ot edin user-a, koito polzvat DCC CHAT ..i ako iskam da izpratia na _VSICHKI_ niakakvi danni ...kak da stane? shte paste-na malko src:

my $dccpid = fork();
if($dccpid == 0) { # child
my $dccs = IO::Socket::INET->new(PeerAddr => $dccserver, PeerPort => $dccport, Proto => "tcp");
while(my $dr = <$dccs>) {
$dccs->send("Holla!\n") if($dr =~ /^HI$/i)
}
}

taka ...tova raboti za edin klient (ako napishe "hi")
no da rechem, che iskam ako klient-a napishe "hi" ...tova neshto da se izprati kum vsichki fork-nati sockets
tova e ..nadiavam se da ima niakoi, koito da mi pomogne ili pone da me _NASOCHI_ zashtoto v 3 IRC mreji udarih na kamyk ;-)

--- Life would be so much easier if we could just take a look at its source code .. ---


Тема Re: izprashtane na danni kum multiple forked sockets [re: azo]  
Авторsofit (Нерегистриран)
Публикувано12.09.03 10:36



Здравей azo,
Защо изобщо fork-ваш като правиш нови връзки? Защо не ги направиш "Non-blocking" (такива, които при while (<>) {} не биха ти задържали програмата). Така може да вкараш всяка нова връзка в един масив и да имаш контрол над всички сокети (и после просто ще циклиш всички елементи от масива и ще пращаш към всеки даденото съобщение). А ако _наистина_ толкова важно да fork-ваш, пиши отново тук, надявам се, че някой ще успее да ти отговори.

Надявам се, че това помогна.



Тема Re: izprashtane na danni kum multiple forked socketsнови [re: sofit]  
Автор azo (Azazel)
Публикувано13.09.03 20:31



vajno e da fork-vam, zashtoto ako ne se fork-vat DCC konekciite ne moje da se zakachi poveche ot 1 chovek po dcc. Inache si misleh za sushtata ideia ..no naistina triabva da fork-vam;-)
tnx za otgovora vse pak :)

--- Life would be so much easier if we could just take a look at its source code .. ---


Тема Re: izprashtane na danni kum multiple forked sockeнови [re: azo]  
АвторSofit (Нерегистриран)
Публикувано14.09.03 00:38



Mi hubawo, fork-vaj si i gi pazi w edin array nowite new created sockets i foreach-vaj i pishi kym tezi referencii w array-a i gotowo. Ili naprawo prawi socket-a kato 4ast ot array-a $array[$id] = IO::Socket...



Тема Re: izprashtane na danni kum multiple forked sockeнови [re: azo]  
Авторpencho666 (Нерегистриран)
Публикувано30.10.03 14:26



Ima mnogo nachini tova da se napravi. Ot nestabilnite i zaviseshti ot operacionnata sistema "podeleni" failovi descriptori, do non-blocking IO i cikli.
Mnogo lesno mojesh da napravish slednoto neshto:
Da otvariash nov Socket v promenliva ot masiv push(@dcss,IO::Socket::INET......), da go markirash kato $dcss[-1]->blocking(0); i da si vartish cikli bez fork. Kakto i za chetene. Niamash blokirane, niamash izchakvane.
Drug mehanizam e da imash proces koito da ima FD-ta mejdi podprocesite (naprimer da ima otvoreni PIPES), i kogato iskash da izpratish neshto na vsichki pristignalo pri child 1, to go kopira na PIPE-to na komunikacionniat proces, a toi go razmnojava kam vsichki. Tova shte iziskva s poll ili select ot vreme na vreme da gledash po pipe-to dali ne e pristignala informacia (forma na nonblocking IO).
Treti nachin e da otvariash zatvariash tcp sesiite nanovo. Mojesh da imash shared memory mejdu procesite kadeto da kopirash informaciata, i s kill (niakakav specialen signal) da izvestish vsichki childs da go prochetat ot tam.
Moje mnogo neshta, kolkoto fantazia imash. No non-blocking IO-to e nai prosto :)




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.