Volgend stukje code komt uit een eenvoudig server programma
(het is gewoon een socket die alles uitprint wat je er naar toe stuurt,
of dat is toch de bedoeling
)
Als ik deze code uitvoer loopt alles normaal, geen van de 'die'
boodschappen duiken op. Wil ik echter connecten op deze socket
dan wordt die nooit gevonden... niet met mijn perl client en ook
niet met een telnet applicatie.
Nochtans komt deze code uit een van mijn oudere programma's waar
die wel werkte (is gewoon copy/paste). Het enige verschil tussen de
nieuwe en oude code is dat in de oude code de gewenste poort voor
het serverproces werd ingelezen met een <STDIN> instructie ipv via
de CLI.
Verder heb ik vanalles geprobeerd... de "" weggehaald bij de standaardwaarde
van $poort, vervangen door ' ',... etc. maar niets hielp tot nu toe.
Ben ik beter af met het lezen van mijn poort door <STDIN>? (denk
zelf van niet, want ik weet dat die foreach (@ARGV) constructie
werkt, die komt ook uit een oud programma van mij).
(het is gewoon een socket die alles uitprint wat je er naar toe stuurt,
of dat is toch de bedoeling
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| use Socket;
my $poort = 8888;
#my $max = "1";
foreach (@ARGV) {
if (/=/) {
($optie, $waarde) = split(/=/);
if (lc($optie) eq "max") { $max = $waarde;}
elsif (lc($optie) eq "poort") { $poort = $waarde;}
}
}
# we openen een socket
socket(LUISTER, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die "kan geen socket starten!";
# binden van de socket aan het opgegeven poortnummer
bind(LUISTER,sockaddr_in($poort,INADDR_ANY)); || die "fout bij binden poort aan socket!";
... |
Als ik deze code uitvoer loopt alles normaal, geen van de 'die'
boodschappen duiken op. Wil ik echter connecten op deze socket
dan wordt die nooit gevonden... niet met mijn perl client en ook
niet met een telnet applicatie.
Nochtans komt deze code uit een van mijn oudere programma's waar
die wel werkte (is gewoon copy/paste). Het enige verschil tussen de
nieuwe en oude code is dat in de oude code de gewenste poort voor
het serverproces werd ingelezen met een <STDIN> instructie ipv via
de CLI.
Verder heb ik vanalles geprobeerd... de "" weggehaald bij de standaardwaarde
van $poort, vervangen door ' ',... etc. maar niets hielp tot nu toe.
Ben ik beter af met het lezen van mijn poort door <STDIN>? (denk
zelf van niet, want ik weet dat die foreach (@ARGV) constructie
werkt, die komt ook uit een oud programma van mij).
Clowns to the left of me, Jokers to the right