Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
21 years ago

non-blocking LWIP Ethernet Socket

Has anyone been able to setup a socket non-blocking with LWIP on uC/OS-II?

I have found that the fcntl() is not supported.

My application is using the socket as a control channel that I check every time I go through my application.

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You are correct that there is no fcntl() for LWIP. However there is a handy ioctl which will do what you want FIONBIO.

    The syntax is to set non blocking

    int fred = 1;

    ioctlsocket(your_socket,FIONBIO,&fred)

    Simply set fred to 0 for blocking.

    I've not tested this, so caveat emptor
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Have a look at the web server example design that ships with Nios II. This uses LWIP on uCOS and the HTTP server uses non-blocking IO (for the most part) to send web content back to the client.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks for the help.

    The FIONBIO with the ioctl worked great for my code.