Portál AbcLinuxu, 14. července 2025 06:18


Dotaz: socket server obsluhujici 2 klienty

9.1.2006 18:01 Ivan Marek
socket server obsluhujici 2 klienty
Přečteno: 109×
Odpovědět | Admin
Zdravim,

nemuzu vyresit tuto vec. Potrebuji udelat 2 skripty (v perlu): K serveru budou pripojeni vzdy 2 klienti. A jde o toto. 1. klient odesle serveru nejakou informaci, ten ji nejakym zpusobem zpracuje a vysledek posle 2. klientovi. Nyni 2. klient posle serveru informaci, ten ji opet zpracuje a posle 1. klientovi. Dale je na rade 1. klient. A to se stale opakuje.

Jednoduse receno nevim, jak takovy server vytvorit.

Napadli me 2 moznosti.

Bud vytvorit pro kazdeho klienta zvlastni socket spojeni, ale to jsem zavrhl, protoze bych musel pouzit 2 porty.

A nebo vytvorit server, ktery nasloucha 2 klientum, pricemz by se asi pouzil fork.

my $klient = $sock->accept();
my $pid = fork();
$klient->autoflush(1);
<$klient>;
print "Klient pripojen\n";

To ale po hodinach experimentovani stale nefunguje. Mimo jine nerozeznam, od ktereho klienta prisla data. Asi mi neco uchazi:)

Dekuji za pripadne podnety
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.1.2006 19:37 tulpik
Rozbalit Rozbalit vše Re: socket server obsluhujici 2 klienty
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, to je _dost_ blbe, jak to jako takto chces udelat? Musis pouzit vlakna, jinak to proste nepude, a taky select nebo poll, podle toho kde to ma bezet :D
9.1.2006 20:28 tulpik
Rozbalit Rozbalit vše Re: socket server obsluhujici 2 klienty
Jo, omlouvam se za nedorozumeni, sem cekal, ze budes chtit "full duplex" :-)
9.1.2006 20:19 tulpik
Rozbalit Rozbalit vše Re: socket server obsluhujici 2 klienty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak sem tady napsal "light" server ( v pythonu, perl neumim a hnusi se mi ) http://rafb.net/paste/results/VUaeCL70.html Pripojit se muzes treba telnetem...
9.1.2006 22:42 Ivan Marek
Rozbalit Rozbalit vše Re: socket server obsluhujici 2 klienty
Hm funguje to hezky... Ale budu se muset naucit python abych to i pochopil:)
10.1.2006 09:13 tulpik
Rozbalit Rozbalit vše Re: socket server obsluhujici 2 klienty
Neni to tak tezky pochopit, ve zkratce to nasloucha na portu 8888(7777), nebo kolik to tam je (bind) a ceka, az se pripoji 2 klienti, pak to ve smycce posle druhymu klientu data z prvniho :-D

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.