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

Address return form accept() / MDK Keil

Hi guys,

why or better when is the accept()  returning zero filled IP and PORT? Sometimes I have there right IP and port and sometimes zero filled ip.

SOCKADDR_IN rem_addr = {0};
				int addr_len = sizeof(SOCKADDR_IN);

				int retAccept = accept(rl_sock_id, (SOCKADDR *)&rem_addr, &addr_len );

Network Component  Version 7.13.0
RTOS2

There is no note about it in documentation https://www.keil.com/pack/doc/mw/Network/html/group__using__network__sockets__bsd__func.html#ga18e88467cfdbc3c361d53b9f928a87ab

Thank you!

Parents Reply Children
  • Thanks. It shows this:

    05:36:03.684d NET: Before accept()<CR><LF>
    05:36:03.685i RETARGET: 013.5 BSD:Accept Socket 1<LF><CR><LF>
    05:36:03.685d NET: After accept()<CR><LF>
    05:36:04.322i RETARGET: 014.1 BSD:Socket 2, Evt_Connect<LF><CR><LF>
    05:36:04.324i RETARGET: 014.1 BSD: Address [10.12.12.2], port 55167<LF><CR><LF>
    05:36:04.327i RETARGET: 014.1 BSD:Socket 2, Evt_Established<LF><CR><LF>
    05:36:04.338i RETARGET: 014.1 BSD:Que_add 6 bytes, Socket 2<LF><CR><LF>
    05:36:04.838i RETARGET: 014.6 BSD:Socket 2, Evt_Closed<LF><CR><LF>
    05:36:05.184d NET: Before accept()<CR><LF>
    05:36:05.185i RETARGET: 015.0 BSD:Accept Socket 1<LF><CR><LF>
    05:36:05.185i RETARGET: 015.0 BSD: Child Socket 2 connected<LF><CR><LF>
    05:36:05.186d NET: After accept()<CR><LF>
    05:36:05.187d NET: CONREQ 0.0.0.0:0<CR><LF>
    05:36:05.187i RETARGET: 015.0 BSD:Closesocket 2<LF><CR><LF>

    So my opinion is that before I catch incoming socket by calling accept() and read incoming data. (Assume non-blocking mode) The socket is closed by opposite site. Am I right? Is it likely?

    NET: Is my Thread.

    Isn't it strange that incoming connection is accepted, received data and closed before I call accept() again?