Hi,
bin mir nicht ganz sicher ob das hier richtig ist aber ich hoffe schon.
Ich habe das gefuehl das mein select nicht merkt wenn eine neue verbindung eintrifft. kann das sein?
waere echt cool wenn Ihr da mal raufscahuen koenntent.
[code]
int main () {
int intSock=0;
int intBind=0;
int intListen=0;
int intSockNeu=0;
int intResRead=0;
int intResWrite=0;
int intFdMax=0;
int intSelect=0;
/* Zaehlvariablen */
int i=0, j=0;
char chaBuf[MAXBUF];
struct sockaddr_in strServer;
struct sockaddr_in strClient;
int intLaenServ;
int intLaenClie;
fd_set fdsread;
intLaenServ = sizeof(strServer);
intLaenClie = sizeof(strClient);
/* Server Struct richtig einstellen */
memset(&strServer, 0, sizeof(strServer)); /* clear structure */
strServer.sin_family = AF_INET;
strServer.sin_addr.s_addr = htonl(INADDR_ANY);
strServer.sin_port = htons(PORT);
intSock = socket(AF_INET, SOCK_STREAM, 0);
if ((-1) == intSock) {
perror("Anlegen des Socketes ging schief: ");
exit(-1);
}
intBind = bind(intSock, (struct sockaddr*) &strServer, intLaenServ);
if ((-1) == intBind) {
perror("Bind ging schief: ");
exit(-1);
}
intListen = listen(intSock, 10);
if ((-1) == intListen) {
perror("Listen ging schief: ");
exit(-1);
}
FD_ZERO(&fdsread);
FD_SET(intSock, &fdsread);
intFdMax = intSock;
do {
write(1,„DO\n“,3);
intSelect = select(intFdMax+1, &fdsread, NULL, NULL, NULL);
if((-1) == intSelect) {
perror("Select ging schief: ");
exit(-1);
}
write(1, „NACH\n“,5);
for (i=0; i intFdMax) {
intFdMax = intSockNeu;
}
write(1,„NEU\n“,4);
}
else {
/* empfange daten vom client */
intResRead = recv(i, &chaBuf, MAXBUF, 0);
if ((-1) == intResRead) {
perror("Read ging schief: ");
exit(-1);
}
write(1,chaBuf,intResRead);
// for (j=0; j