PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : socketprogrammierung und bind



Stranger
11-03-2002, 00:22
hi ,

ich hab einen server in c programmiert und wenn ich ihn starte dann bekomme ich einen fehler in der bind funktion.

die betreffende zeile sieht so aus:

if(bind(sock,(struct socketaddr *)&adr,sizeof(adr)));

also nach dieser zeile springt ermir in die fehlermeldung muß ich noch ne lib oder sowas aufspielen ???

kompiliert hat der gcc alles ohne zu maulen !!


CU - Stranger

jgbauman
11-03-2002, 00:31
Wäre vieleicht hilfreich auch de Fehlermeldung zu posten.

Stranger
11-03-2002, 00:33
die fehlermeldung ist ja von mir.
d.h. wenn das mit dem bind nicht funktioniert (deswegen if) bring mir eine fehlermeldung !!!

CU - Stranger

anda_skoa
11-03-2002, 09:25
Er meint, auf welchen Wert wurde errno gesetzt.

Siehe auch man bind und man errno.

Ciao,
_

denis
11-03-2002, 17:14
Mach mal perror(...); Dann erhälst du ne Systemfehlermeldung.

Vielleicht hast du versucht dich an nen Port zu binden der unter 1024 liegt? Das funktioniert nämlich nur als root.

Stranger
11-03-2002, 18:05
ne der port ist 2222

ich mach das mal mit dem perror

Stranger
11-03-2002, 18:28
DANKE LEUTE


ich bin ein depp

hab nach dem if ein semikolon gemacht:ugly:

jetzt läuft es

CU - IDIOT_Stranger

anda_skoa
11-03-2002, 21:12
Das ist mit selber auch schon paarmal passiert :rolleyes:

Ciao,
_

TheDodger
14-03-2002, 05:28
oder ein :
if( x == 0)
{
[...]
}

(war aber nicht ich :D )

anda_skoa
14-03-2002, 11:21
wolltest du
if (x = 0)
schreiben? ;)

Ich seh in dem
if (x == 0)
{

}

keinen Fehler

Ciao,
_

TheDodger
14-03-2002, 17:15
Naja, eigentlcih geht das ganze etwas weiter ...


while( true )
{
[...]
if( x == 0 )
break;
else
{
[...]
}
}


Ein Arbeitskollege von mir hat sich das geleistet und gewundert, warum seine while() Schleife nie abbrach :)

Naja, mit einer Zuweisung in einer if-Abfrage ...

anda_skoa
14-03-2002, 20:16
Du hast es schon wieder richtig (falsch?) geschrieben :D

x == 0 ist ein völlig korrekter boolscher Ausdruck.

Du bist einfach schon so gut, dass du eine Fehler nicht mal schreiben kannst wenn du wolltest :p

Ciao,
_

TheDodger
15-03-2002, 03:48
:D :D :D :D

Nein, das war der Fehler ... der boolscher Ausdruck innerhalb der if() Abfrage war zu dem Zeitpunkt der Knackpunkt, weshalb die while Schleife nie verlassen wurde ...

(Und sooo gut bin ich nun auch wieder nicht!)

Sellew
15-03-2002, 06:46
hi,

if (x==0) ist keine zuweisung, das ist ein vergleich.
if (x=0) ist eine zuweisung in der if-anweisung. anda_skoa hat schon recht.

den sinn von deiner schleife warum die niocht abbrach ist nicht ersichtlich.

mfg

MilleniumEli
15-03-2002, 10:46
warum bricht das net ab?

Trillian
15-03-2002, 11:41
Vielleicht weil x nie 0 wird? Der Code da oben ergibt in der Form eben nicht wirklich Sinn :p

TheDodger
15-03-2002, 19:50
Original geschrieben von Sellew
hi,

if (x==0) ist keine zuweisung, das ist ein vergleich.
if (x=0) ist eine zuweisung in der if-anweisung. anda_skoa hat schon recht.

den sinn von deiner schleife warum die niocht abbrach ist nicht ersichtlich.

mfg

Asche auf mein Haupt, du hast recht ...

es sollte doch wirklcih if( x = 0 ) lauten :(

naja, jeder mach mal Fehler ... und es war eben früh am Morgen :cool:

MilleniumEli
16-03-2002, 09:12
while( true )
{
[...]
if( x == 0 )
break;
else
{
[...]
}
}


das war der code.... warum kann x nie gleich 0 sein :confused: so wie ICH das sehe stehn da noch drei punkte vor. und wer weiss was du da noch alles mit x machst ;)

anda_skoa
16-03-2002, 10:04
Bischen langsam, hmm?
:)

Dodger hat doch schon geschrieben, dass er sich verschrieben hat und es x = 0 hätte heißen sollen.

Ciao,
_

MilleniumEli
16-03-2002, 10:42
:D du hast recht :)

aber Trillian hats immer noch net verstanden :)