baerbelita
Grünschnabel
Hallo,
ich habe folgenden Code, den ein Thread ausfuehrt. Zunaechst liest er ohne Probleme von den Sockets, doch nach einer gewissen Zeit, gibt select dann nur -1 zurueck und die Fehlermeldung select error!: Interrupted system call
erscheint. Ich kann den Fehler allein nicht finden, kann mir bitte jemand helfen?
ich habe folgenden Code, den ein Thread ausfuehrt. Zunaechst liest er ohne Probleme von den Sockets, doch nach einer gewissen Zeit, gibt select dann nur -1 zurueck und die Fehlermeldung select error!: Interrupted system call
erscheint. Ich kann den Fehler allein nicht finden, kann mir bitte jemand helfen?
Code:
sendRTCP() {
/* Error values that the RTP library returns. */
rtperror err;
while(1) {
int retval, i;
fd_set sockets;
rtperror err;
FD_ZERO(&sockets);
FD_SET(sock[0], &sockets);
FD_SET(sock[1], &sockets);
retval = select(nfds + 1, &sockets, NULL, NULL, NULL);
if (retval < 0) { /* select returned an error */
perror("select error!");
exit(1);
} else if (retval > 0) { /* select reported readable fd's. */
for (i = 0; i < 2; i++) {
if (FD_ISSET(sock[i], &sockets)) {
int recbuflen = RECEIVE_BUFFER_SIZE;
err = RTPReceive(cid, sock[i], receive_buffer, &recbuflen);
if (err != RTP_OK && err != RTP_PACKET_LOOPBACK) {
fprintf(stderr, "RTPReceive %s (%d): %s\n",
i ? "RTCP" : "RTP", sock[i],
RTPStrError(err));
}
}
}
}
}
}