This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

BSD accept function

Hi all,

I've been working for a while on a BSD server using KEIL MDK5 latest version 5.21a middleware.
I'm using the multitask RTOS RTX in Round Robin mode.
I'm using the common sequence task to handle a connection request on the socket:

1. socket
2. bind
3. listen
4. accept
5. send/receive
6. closesocket

My host application executes two kind of get command: the first one with a single connection request and
a second one with a multiple connection requests (4 reqs in a single command). When it performs the
second one, at the end of multiple send/receive session, I "close" the current socket (case 6),
and I go to waiting for a new request connection (case 4). Now, in absence of new pending requests,
the "accept" function doesn't block as I expected, but it reopens the previous one. So the next "receive"
call fails and it leads to a kind infinite ping/pong behaviour.

I don't understand why the accept function doesn't block,
waiting for new connection requests as it is expected using RTX RTOS.

Fabio