/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Perl multithread client/server TCP problem
Fra : jfn@dassic.com


Dato : 08-01-01 16:22

Hej!

Jeg er ved at rode med noget client/server kode og har taget
udgangspunkt i kode eksempler fundet her :

http://www.cpan.org/doc/manual/html/pod/perlipc.html#Internet_TCP_Client
s_and_Servers

Jeg har benyttet den multitraaede server, da jeg skal bruge det i
forbindelse med at nogle hundrede klienter skal sende data ind til en
central server.
Jeg benytter hhv. Solaris & Tru64. Nyeste Perl.

Mit problem er at eksemplerne ikke virker helt.
De print saetninger der fra serveren fyres af mod klienten dukker aldrig
op, mens exec'en virker fint.
Ved at sammenligne med den enkelt-traaede server fandt jeg at man havde
"glemt" at definerede retning paa print saetningerne, men selvom jeg
skriver print Client "blabla" kommer der ikke noget frem.
Derudover skulle der lige en my foran $EOL.

Nogen der har en idé til hvad der er galt.... og hvordan faar jeg
egentlig klienten til at sende den anden vej (print <SOCKET> "blabla",
eller ?)


l8r/Jspr


Sent via Deja.com
http://www.deja.com/

 
 
Adam Sjøgren (08-01-2001)
Kommentar
Fra : Adam Sjøgren


Dato : 08-01-01 16:54

On Mon, 08 Jan 2001 15:22:08 GMT, jfn wrote:

> Ved at sammenligne med den enkelt-traaede server fandt jeg at man
> havde "glemt" at definerede retning paa print saetningerne,

Hvad betyder "retning" i forbindelse med print?


Mvh.

--
"The problem is, you see everything in terms of black Adam Sjøgren
and white" "SOMETIMES THAT'S THE WAY THINGS ARE!!" asjo@koldfront.dk

Jesper Frank Nemholt (08-01-2001)
Kommentar
Fra : Jesper Frank Nemholt


Dato : 08-01-01 22:13

"Adam Sjøgren" <asjo@koldfront.dk> wrote in message
news:87n1d2kpkk.fsf@virgil.koldfront.dk...
> On Mon, 08 Jan 2001 15:22:08 GMT, jfn wrote:
>
> > Ved at sammenligne med den enkelt-traaede server fandt jeg at man
> > havde "glemt" at definerede retning paa print saetningerne,
>
> Hvad betyder "retning" i forbindelse med print?

I denne forbindelse at STDIN/STDOUT er omdirrigeret saa en print ikke dukker
op paa ens TTY men ender paa klientens skaerm via den TCP forbindelse man
har skabt.

I mellemtiden har jeg dog fundet aarsagen til problemet.
Selve forbindelsen er OK. Grunden til at der ikke dukker noget op paa
klientsiden er et eller andet terminerings eller flushing problem.
Laver jeg en simpel exec '/usr/bin/sleep 0' eller noop til sidst kommer alle
mine print saetninger frem.

Jeg har dog stadig problemer med trafik den anden vej, altsaa fra klient til
server.


l8r/Jspr



Adam Sjøgren (09-01-2001)
Kommentar
Fra : Adam Sjøgren


Dato : 09-01-01 02:31

On Mon, 08 Jan 2001 21:13:09 GMT, Jesper Frank Nemholt wrote:

> Grunden til at der ikke dukker noget op paa klientsiden er et eller
> andet terminerings eller flushing problem. Laver jeg en simpel exec
> '/usr/bin/sleep 0' eller noop til sidst kommer alle mine print
> saetninger frem.

Måske et kig på $| eller IO::Handle autoflush ku' hjælpe?


Mvh.

--
"Take your pick, Frankie-boy Adam Sjøgren
My loss will be your gain" asjo@koldfront.dk

Jesper Frank Nemholt (10-01-2001)
Kommentar
Fra : Jesper Frank Nemholt


Dato : 10-01-01 23:56

"Adam Sjøgren" <asjo@koldfront.dk> wrote in message
news:87g0itik9x.fsf@virgil.koldfront.dk...
> On Mon, 08 Jan 2001 21:13:09 GMT, Jesper Frank Nemholt wrote:
>
> > Grunden til at der ikke dukker noget op paa klientsiden er et eller
> > andet terminerings eller flushing problem. Laver jeg en simpel exec
> > '/usr/bin/sleep 0' eller noop til sidst kommer alle mine print
> > saetninger frem.
>
> Måske et kig på $| eller IO::Handle autoflush ku' hjælpe?

Well, det viste sig at være en simpel tastefejl andetsteds i scriptet, og
det problem jeg havde med at sende den anden vej har jeg løst, plus et andet
og mere kritisk der opstod. Alle klienterne kaldes a la :

/usr/sbin/collect -F -t -n20 -i300 | ./statdb_client.pl

....så hver spawnet child i serverscriptet bliver holdt i live konstant
(hvilket hurtigt bliver til en del bytes med 200 klienter og en Perl med
DBD/DBI).

....så jeg har lige flyttet connect & disconnect ind i min stdin løkke og
tester på hhv. start & slut identifiers fra Collect & Symbel. Så er
forbindelsen kun aktiv når der er data at overføre (hvilket er 1 gang hvert
5. minut (interval = 300 sekunder).


l8r/Jspr



Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste