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,

 

David

  

 

 

 

 

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

Reply via email to