W5500 dhcp & tcp 두번째 문의
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: W5500 dhcp & tcp 두번째 문의
by bangbh ·
안녕하세요.
위즈네트 방보현 연구원입니다.
DHCP는 IP를 서버로 부터 가져오는 개념이 아니라 서버가 임대해 주는 개념입니다.
서버마다 다르긴 하지만 엄연히 임대 시간도 존재합니다.
그리고 DHCP 클라이언트는 임대 시간의 50%와 85%에 IP를 계속 사용해도 되는지 서버에 문의해야 하고 임대 시간을 갱신합니다.
또한 DHCP_run() 함수는 DHCP의 각 단계에 따라 실행되는 switch case로 구성되어 있습니다.
그러므로 DHCP_run을 실행하지 않으면 임대기간이 끝나거나 새로운 IP할당이 필요할 때 IP를 할당받지 못합니다.
다만 DHCP_run() 함수로 인한 MCU의 자원 소모가 싫으시다면 DHCP로 IP를 할당받은 이후 임대 시간의 50%가 되었을 때 임대 시간을 갱신하는 코드와 link가 떨어졌다가 다시 붙었을 때 DHCP로 새로운 IP를 할당받을 수 있는 코드를 별도로 작성하셔야 합니다.
그리고 IP를 정상적으로 할당받은 이후 TCP client를 구현하신 것 같은데 그 부분은 크게 문제가 보이지 않습니다. 다만 socket은 에러가 없지 않는 한 계속 열 이유가 없습니다.
그리고 dhcp 소켓 번호와 tcp 소켓 번호는 지금과 같은 방식에서는 다른 번호를 사용하셔야 합니다.
socket은 각각의 프로그램이 소통하기 위한 end point입니다. DHCP와 TCP는 다른 종류의 프로그램이므로 동시에 같은 소켓으로 돌릴 수 없습니다.
다만 아까 말씀드린 바와 같이 DHCP에 할당된 소켓이 아까우시면 IP할당 이후 별도로 소켓을 여는 프로그램을 하셔야 합니다.
더 궁금하신 점이나 이해가 가지 않는 점이 있으시면 리플달아주세요.
수고하세요.