PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Socket connect



klinsel
21-01-2008, 21:46
Ich habe eine kleine Serveranwendung, die jedoch nur immer 1 Client akzeptiert. Hier der Perl-Code:


my $sock = new IO::Socket::INET (
LocalHost => "$hostname",
LocalPort => $ARGV[0],
Proto => 'tcp',
Listen => 1,
Reuse => 1,
);

Nun habe ich ein kleines C-Programm, dass sich dorthin verbindet. So weit so gut. Starte ich allerdings mehrere Clients, blockieren deren recv() Aufrufe teilweise.
Ich stelle mir die Frage, warum nicht der connect() Aufruf des 2. Clients fehlschlägt, wenn schon ein Client zum Server verbunden ist. Kann ich das irgendwie implementieren?

jay-t
24-01-2008, 16:20
Welchen Wert gibt connect() zurück?
Wenn es -1 ist dann gab es einen Fehler. Der Fehlercode ist dann in "errno".



if (connect ( ) == -1)
{
printf ("connect Fehler: %i\n", errno);

/* Fehlerbehandlung... */
}


So kann das aussehen. Füge noch das ein, was gemacht werden soll wenn
die Verbindung schon belegt ist.