PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probs mit fcntl



mithras
13-10-2002, 21:06
hab mit fcntl nonblocking angeschaltet, damit am connect nicht ewig auf clients gewartet wird, die off sind, allerdings funktioniert das ganze nicht, der server kann nicht connecteen!?





if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) // Socket wird erstellt
{
printf("\nFehler beim Erstellen des Socket %d!\n", i);
}
else
{
printf("\nSocket %d wurde erfolgreich erstellt!", i);

// setzt nonblocking (die connect Fkt. kehrt wenn gegenueber off. ist sofort zurueck.)

if (fcntl(sock, F_SETFL, O_NONBLOCK) == -1)
{
puts("fehelr bei fcntl!");
return -1;
}
else
{

if (connect(sock, &client, sizeof(client)) < 0) // Es wird zum Server-Prozess des Clients connected
{
printf("\nconnect() %d failed!", i);
}

else
{
printf("\nConnect %d war erfolgreich!", i);
senden(sock, text);
}
}

DerLipper[TuX]
15-10-2002, 18:32
daß du den socket per bind an nem port binden musst und dann ein listen erfolgen sollte, weisst du? Desweiteren programmiert man dann meistens ne schleife nach folgenden muster:


while (1)
{
AcceptConnections(); // warten bis client ssich connected -> selbstgeschriebene funcktion
}