Tcp cinnection problem
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: Tcp cinnection problem
by becky ·
Your text is too short. I can’t judge the problem by looking at your writing. I hope you see loopback_tcps() in loopback.c and refer to the process for extabilishing.
RE: Tcp cinnection problem
by gakgoelazig ·
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);