Nach einer Erweiterung des Clients kann es aber passieren, das in Folge einer Anfrage weitere Anfragen gewünscht werden. Tatsächlich geht es dabei um die Abfrage eines Verzeichnisses wobei, je nach Vorgeschichte, zusätzlich eine Vorschaudatei geladen werden soll. Dafür wird bisher eine neue Verbindung mit einem neuen Socket Filediscriptor erzeugt, was irgendwie nicht optimal ist.
Ich frage mich daher, ob es möglich ist, den vorhandenen Filedescriptor weiter zu nutzen und wie ich das prüfen kann. Der Punkt ist, wie kann ich feststellen, ob die Gegenstelle (Gegner ) die Verbindung bereits geschlossen hat?
Bisher verwende ich folgende mir bekannte Fuktionen:
Code: Alles auswählen
sock_fd = socket( rp->ai_family, rp->ai_socktype, rp->ai_protocol );
if( connect( sock_fd, rp->ai_addr, rp->ai_addrlen ) != -1 )
if( send( sock_fd, sbuf, strlen( sbuf ), 0 ) < 0 ) {
if( (n = recv( sock_fd, rcv_buf, RCVBUF_SIZE, 0 )) > 0 ){
n_rcv = read( socfd, &ch, 1 );