milchbubbi
Mitglied
Hallo zusammen...
ich habe ein kleines Programm geschrieben - es tut bisher noch nicht viel, ausser sich an einen Port zu haengen und auf eine Verbindung zu warten. Falls sich jemand verbindet wird auf der client-seite eine Nachricht auf dem Schirm ausgegeben und die Verbindung getrennt. Na ja, besser gesagt, es tut noch nicht einmal das. Es laesst sich compilieren - bei Ausfuehren aber gibt bind() -1 zurueck
Ich weiss einfach nicht mehr weiter, denn ich finde den fehler nicht. Ich hoffe, mir kann jemand helfen.
hier ist der quelcode:
ich danke im Voraus!
cu, Bubbi
ich habe ein kleines Programm geschrieben - es tut bisher noch nicht viel, ausser sich an einen Port zu haengen und auf eine Verbindung zu warten. Falls sich jemand verbindet wird auf der client-seite eine Nachricht auf dem Schirm ausgegeben und die Verbindung getrennt. Na ja, besser gesagt, es tut noch nicht einmal das. Es laesst sich compilieren - bei Ausfuehren aber gibt bind() -1 zurueck
Ich weiss einfach nicht mehr weiter, denn ich finde den fehler nicht. Ich hoffe, mir kann jemand helfen.
hier ist der quelcode:
Code:
#include <stdio.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define NACHRICHT "Verbindung aufgebaut..."
#define FEHLER -1
int main (int argc, char **argv)
{
struct sockaddr_in destant_adr;
struct sockaddr_in my_addr, client;
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(5001);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
int sockfd, connfd;
socklen_t sin_size = sizeof (client); // Laenge fuer accept?!
if( (getuid()|getgid()) != 0)
{
printf("bitte als root einloggen\n");
return FEHLER;
}
if (sockfd = socket (AF_INET, SOCK_STREAM, 0) == FEHLER)
{
printf ("socket() fehlgeschlagen - sockfd!\n");
return FEHLER;
}
if (bind(sockfd, (struct sockaddr*)&my_addr, sizeof(my_addr)) == FEHLER)
{
printf ("bind() fehlgeschlagen!\n");
return FEHLER;
}
if (listen(sockfd, 3) == FEHLER)
{
printf ("listen() fehlgeschlagen!");
return FEHLER;
}
while (1)
{
if (connfd = accept (sockfd, (struct sockaddr *) &client, &sin_size) == FEHLER)
{
printf ("accept() fehlgeschlagen!");
return FEHLER;
}
write(connfd, NACHRICHT, strlen(NACHRICHT));
close(connfd);
}
return 0;
}
ich danke im Voraus!
cu, Bubbi