supervisor
Eroberer
hallo!
ich hab jetzt mit netzwerkprogrammierung angefangen, und hab versucht n kleinen 'server' zu schreiben, der im Grunde nur auf verbindungen wartet und wenn eine kommt was auf der shell ausgibt. das Problem: es funktioniert irgendwie nich. ich hab jetzt seit ca. 3 stunden versucht, das problem zu beseitigen, konnte aber nur rausfinden, dass es am aufruf von socket() liegt. da bleibt es zwar hängen, der prozess bleibt aber weiter am leben.
wahrscheinlich hab ich eh blos nen dummen anfängerfehler gemacht, also hier is der code:
ich hab jetzt mit netzwerkprogrammierung angefangen, und hab versucht n kleinen 'server' zu schreiben, der im Grunde nur auf verbindungen wartet und wenn eine kommt was auf der shell ausgibt. das Problem: es funktioniert irgendwie nich. ich hab jetzt seit ca. 3 stunden versucht, das problem zu beseitigen, konnte aber nur rausfinden, dass es am aufruf von socket() liegt. da bleibt es zwar hängen, der prozess bleibt aber weiter am leben.
wahrscheinlich hab ich eh blos nen dummen anfängerfehler gemacht, also hier is der code:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/wait.h>
#include <signal.h>
int main()
{
int db;
int sockfd;
struct sockaddr_in hostaddr;
struct sockaddr_in clientaddr;
socklen_t size;
sockfd = socket(PF_INET, SOCK_STREAM, 0);
printf("%d", sockfd);
hostaddr.sin_family = AF_INET;
hostaddr.sin_port = htons(5000);
hostaddr.sin_addr.s_addr = INADDR_ANY;
memset(hostaddr.sin_zero, '\0', sizeof hostaddr.sin_zero);
db = bind(sockfd, (struct sockaddr *)&hostaddr, sizeof hostaddr);
printf("%d", db);
db = listen(sockfd, 10);
printf("%d", db);
while(1)
{
int new_fd = accept(sockfd, (struct sockaddr *)&clientaddr, &size);
printf("Verbindung angenommen");
}
}