In got the following problem:
I made a server which is able to handle multiple connection by using select(). But select returns a client(index of FD_SET) also if the socket just got an error like “client disconnect” or whatever.
Is it possible to check a socket without calling recv(). Because to receive I need to get a buffer out of my “BufferPool“
Sample code:
int ret = recv(client, buffer_pool->get(), BUFFER_SIZE, 0);
if(ret == -1) ... // something went wrong
Well then I have to release the buffer again, and it was pretty much a waste of one buffer in my pool. (for a short time)
So isn’t it possible to check the socket without calling recv()
After some minutes of work and your help I just receive 1byte before receiving the full amount: