socket() 함수와 connect() 함수 사이의 delay 가 현상을 줄여주기는 합니다만 완벽하게 없어지지는 않습니다.
//create socket
ret = socket(CLIENT_SOCKET, Sn_MR_TCP, localPort++, 0);
if(localPort == 0xFFFF) {
localPort = 50000;
}
if (ret < 0) {
HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
printf("socket failed{%ld}.\n", ret);
close(CLIENT_SOCKET);
osDelay(500);
continue;
}
osDelay(20);
//connect to the server
ret = connect(CLIENT_SOCKET, serverIP, SERVER_PORT);
if (ret < 0) {
HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
printf("connect failed{%ld}.Sn_SR()={%d}\n", ret, getSn_SR(CLIENT_SOCKET));
close(CLIENT_SOCKET);
osDelay(500);
continue;
}