FTP and HTTP do not work (similar problem in both)

I face similar problem with FTP and HTTP. I’m able to login with FTP, execute CD. Commands dir, get and put hang. I made some logging, last message that I see is from prvTransferStart – “prvTransferStart: 0xc06777f4 connected 0” Application spins infinitely though prvListSendWork, but does not enter While loop, because pxClient->bits1.bClientConnected is false. I assume that FTP waits for connection, but it does not happen. I’d appreciate any hint. Thanks Rasty

FTP and HTTP do not work (similar problem in both)

Hi Rasty, You send me this FTP conversation: ~~~~ 220 Welcome to the FreeRTOS+TCP FTP server USER 331 Anonymous login okay PASS 230 OK. Current directory is / CWD www 250 Changed to /www PORT 10,4,20,24,249,127 200 NOOP command successful. LIST 150 Opening ASCII mode data connection to for /bin/ls ~~~~ PORT 10,4,20,24,249,127 means : please connect to 10.4.20.24 port 63871 10.4.20.24 is a different network from 192.168.2.1. And so your embedded device probably doesn’t know how to connect to 10.4.20.24. Within +FTP, the address resolution is simple: if an IP-address doesn’t match with its own net-mask, then the packet will be sent to the Gateway IP address.

FTP and HTTP do not work (similar problem in both)

You’re right. Explanation (bit long, sorry) I have 2 networks 1) lan on 10.4.20.0 2) internal (virtual nic) 192.168.2.0 on Linux Host I run FTP client on 10.4.20.24, which talks to 10.4.20.69 (linux, IP forwarding enabled). Linux has internal IP 192.168.2.2 and target is 192.168.2.1 On my PC (10.4.20.24) I added a route to 192.68.2.0 I’m able to talk from MY pc (10.4.210.24) to target 192.168.2.1 with telnet, so I assume that FTP will be OK as well. Maybe I have to set default gateway on FreeRTOS to 192.168.2.1 ?

FTP and HTTP do not work (similar problem in both)

Problem was in routing. FreeRTOS does not know how to send frames outsize its own subnet I have to set Gateway to peer address,** I’m not sure that it is correct**: –>ip-config IP address 192.168.2.1 Net mask 255.255.255.0 Gateway address 192.168.2.2 <<– peer address, otherwise it does not Work FTP “dir” and “get” Work!!!!!!!!! “Send” does not work. Still hangs. Thank you very much you are great. Send and HTTP will be the next step

FTP and HTTP do not work (similar problem in both)

I’m able to talk from MY pc (10.4.210.24) to target 192.168.2.1 with telnet, so I assume that FTP will be OK as well.
Good you mention this. When you use telnet, your embedded device is the TCP server, it accepts a connection. Also when you connect to the embedded FTP-server and execute CWD www, things works well. Why? When the embedded device is the TCP server, it doesn’t bother looking up the return MAC address. It just swaps the two MAC addresses when replying. The driver also stores the return MAC address for later use. For the FTP commands “LIST” and “STOR”, and “RETR”, a new connection is needed. These commands need a separate data-only connection. It can be established either passively or actively. ~~~~ PASV // The server will receive a connection using accept() 227 Entering Passive Mode (192,168,2,1,45,67)
PORT 10,4,20,24,249,127 // The server will connect() to the client
~~~~ For you PASV would have worked OK. But you used an active connection ‘PORT‘. The routing thing: as I wrote, when your device 192.168.2.1 connects to a strange IP address such as 10.4.20.24, it will not bother looking up the IP-address with ARP. In stead it will send all packets to the configured gateway address. What should you use as a gateway address? That can not be said in general. Maybe your router will do the routing. If not (when using a switch), you can use the IP-address of the adapter that is connected to that switch. For your device, it looks like a DELL device with MAC address 5c:26:0a:48:2b:24, being the return address of the FTP client. Regards.

FTP and HTTP do not work (similar problem in both)

I found all bits and bytes, everything work Fine. Major problem was gateway address for FreeRTOS – it shall be peer address. Thank you very much all.