Hi, all:

  I created client program (DHCP client) using UDP:

  1. Create socket/connection:

     Conn = netconn_new(NETCONN_UDP)

  2. connect to remote:
     
     Netconn_connect(conn, IP_ADDR_BROADCAST, DHCP_SERVER_PORT);

  3. Bind to local port

     Netconn_bind(conn, IP_ADDR_ANY, DHCP_CLIENT_PORT)



  4. Prepare message for sending DHCP request (DHCP discover)

  5. I am able to send out the correct message (DHCPDISCOVER) for DHCP 
     Server.

  6. From network, I am able to monitor the packets (Ethereal)
     So the DHCP client send out (DHCPDISCOVE) for DHCP server, 
     And DHCP server responses this request and send a DHCPOFFER for
client.

  7. I used:
     Netconn_recv(conn) to receive the DHCPOFFER packet; 
     However, it seems to me that netconn_recv(conn) was blocked and
seem 
     That client doesn't receive such packet!


  8. My questions: 
     Q1. I am sure DHCP server sent out DHCPOFFER packets
(broadcasting); 

         HOW can client to receive such broadcast packet?
         Should I rebind the socket/connect again 
                (Netconn_bind(conn, IP_ADDR_ANY, DHCP_CLIENT_PORT);)

     Q2. The netconn_recv(conn) seems been blocked!
         Are there any ways to have timeout mechanism to unblock the
process 
         After certain time?

Thanks for your help.


Regards,

Chien-Lung
  




_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to