Freertos_connect always timesout
Hello,
I have ported over the tcp stack to the tiva tm4c1294 launchpad. I am playing with socket connections.
I successfully get assigned a ip address via dhcp. Using wireshark, I also see my device periodically sending out a Gradtuitous ARP for (my ip address). Makes me believe my device is talking. However, when I setup a socket, I can never get it to successfully connect. The value returned is a 116, or pdFREERTOSERRNOETIMEDOUT.
Any suggestions as to where to go from here?
Thanks
Freertos_connect always timesout
What are you trying to connect to? Do you have an external echo server set up, or something similar? If so, could you please post a wireshark log of the attempted communication.
Some links that may be helpful, although I expect you have seen them already:
http://www.freertos.org/FreeRTOS-Plus/FreeRTOSPlusTCP/TCPNetworkingTutorialSendingTCP_Data.html
http://www.freertos.org/FreeRTOS-Plus/FreeRTOSPlusTCP/TCPEchoClients.html (this one is referring to an example that is in the download).
Freertos_connect always timesout
Yes a WireShark PCAP file would be useful in this case 🙂
Suppose that you want your device to connect to your laptop, for example IP address
192.168.2.100
, port 7
.
You can connect to other laptops or devices, but then WireShark may not be able see all traffic.
Make sure that you assign this port 7 in network byte order:
~~~~
addr.sinport = FreeRTOShtons( 7 );
~~~~
otherwise +TCP will try to connect to port 0x0700 in stead of 0x0007.
A FreeRTOS_connect()
will do the following:
- It will start an ARP lookup request for
192.168.2.100
- It waits for a reply to this ARP request
- It will send out a TCP SYN packet
Freertos_connect always timesout
Ps. The target IP address can be asigned safely in this way:
~~~~
addr.sinaddr = FreeRTOSinetaddrquick( 192, 168, 2, 100 );
~~~~
Both
FreeRTOS_inet_addr_quick()
and FreeRTOS_inet_ntoa()
work with IP adddresses in network-byte order (i.e. big endian)
Freertos_connect always timesout
Hi Hein,
Your questions and suggestions really helped. I had been using wireshark, but one of the things that confused me was I would only see my dhcp messages go out. Then silence from my device. I am on a switched network. I may be a network newbie but I should have known switches mask messages to network plugs/ports that don’t have the inteneded device connected to it.
Once I got around the wireshark issue, I had another light bulb moment. I asked our IT folks to set me up with a connection not behind our network firewall. Turns out that didn’t happen. We love to lock things down. Reason I was failing connection was our firewall. I am up an running now, no issues. I was convinced it was my code. I need to learn to trust myself more.