WIZnet Developer Forum

W5500 error when computer shut down

when debug, everything is good and working. but If I shut down the computer then I cannot connect to the processor again. When you enter the ethernet settings from the control panel and turn the ethernet off and on, it works normally again. how to solve this error. can you help me. my mcu is working tcp server mode. ı am using tcp comunication.

ı am using stm32f407vg .w5500 module .

my code

/* Open socket 0 as TCP_SOCKET with port 5000 /
if((retVal = socket(0, Sn_MR_TCP, 80, SF_TCP_NODELAY)) == 0) {
/
Put socket in LISTEN mode. This means we are creating a TCP server /
if((retVal = listen(0)) == SOCK_OK) {
/
While socket is in LISTEN mode we wait for a remote connection */
while(sockStatus = getSn_SR(0) == SOCK_LISTEN)
delay(600);

     		  /* OK. Got a remote peer. Let's send a message to it */
     		  while(1) {
     			  /* If connection is ESTABLISHED with remote peer */
     			  if(sockStatus = getSn_SR(0) == SOCK_ESTABLISHED) {

     				  /* Retrieving remote peer IP and port number */
     				  getsockopt(0, SO_DESTIP, remoteIP);
     				  getsockopt(0, SO_DESTPORT, (uint8_t*)&remotePort);
     				  sprintf(msg, CONN_ESTABLISHED_MSG, remoteIP[0], remoteIP[1], remoteIP[2], remoteIP[3], remotePort);
     				  PRINT_STR(msg);
     				  while(received_len==0)
     				  {
     				  if((RSR_len = getSn_RX_RSR(0) )> 0)
     				  {
  					   received_len = recv(0, data_buf, RSR_len);
  					   	 if(data_buf[0] == 1)
  					   	 {
  					   		HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_15);
  					   		sprintf(msg,"adc degeri %d",adc_ntc[0]);
  					   	send(0, msg, strlen(msg));
  					   	 }
  					   	 else
  					   	 {
	  					   		sprintf(msg,"adc degeri %d",adc_ntc[0]);

 	  					   	send(0, msg, strlen(msg));

  					   		HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_14);
  					   	 }
     				  }
     				  }
     				received_len =0;
     				  /* Let's send a welcome message and closing socket */
     				  if(retVal = send(0, GREETING_MSG, strlen(GREETING_MSG)) == (int16_t)strlen(GREETING_MSG))
     					  PRINT_STR(SENT_MESSAGE_MSG);
     				  else { /* Ops: something went wrong during data transfer */
     					  sprintf(msg, WRONG_RETVAL_MSG, retVal);
     					  PRINT_STR(msg);
     				  }
     				  break;
     			  }
     			  else { /* Something went wrong with remote peer, maybe the connection was closed unexpectedly */
     				  sprintf(msg, WRONG_STATUS_MSG, sockStatus);
     				  PRINT_STR(msg);
     				  break;
     			  }
     		  }

     	  } else /* Ops: socket not in LISTEN mode. Something went wrong */
     		  PRINT_STR(LISTEN_ERR_MSG);
       } else { /* Can't open the socket. This means something is wrong with W5100 configuration: maybe SPI issue? */
     	  sprintf(msg, WRONG_RETVAL_MSG, retVal);
     	  PRINT_STR(msg);
       }

       /* We close the socket and start a connection again */

// disconnect(0);
close(0);

Hi, @gakgoelazig

are you communicating between your computer and w500 module?

if it is right, did you close tcp communication before shutting down your computer?

thank you

Yes ı communicating btwn. Before tcp cmnctn shutted down. I dnt understandt this sitation

sorry for late the reply. could you send me wireshark network packet?

If the code is right, we can check the network flow.

you can download it.
https://www.wireshark.org/download.html

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.