Ahoj, můžete mi prosím poradit, co dělám špatně, proč to nejde a jak to opravit?
Udělal jsem si jednoduchou aplikaci FTP klienta a snažím se uploadnout soubor na veřejný ftp server. Mám použitou pouze apache-net knihovnu (asi není důležitý).
Zkoušel jsem 2 případy:
a) Pokud to zkusím z mého PC, tak všechno bez problému projde, připojím se na FTP a soubor se nahraje a odhlášení taky proběhne. Pohoda.. takže za mě, to funguje
b) Pokud to pošlu kamarádovi z jiné země, tak dle logu na FTP serveru se úspěšně přihlásil, ale ve chvíli, kdy se měl zahájit upload, to padá na timeout viz....
Caused by: java.net.SocketTimeoutException: Accept timed out
at java.base/java.net.PlainSocketImpl.socketAccept(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:551)
at java.base/java.net.ServerSocket.accept(ServerSocket.java:519)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:858)
at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:653)
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:639)
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:2030)
Je to divný... chová se to, jako kdyby se nemohl na serveru připojit, ale přihlášení proběhlo úspěšně...
Ještě přiložím log z FTP serveru
(not logged in) (NEJAKA_IP)> Connected on port 21, sending welcome message...
(not logged in) (NEJAKA_IP)> USER demo
(not logged in) (NEJAKA_IP)> 331 Password required for demo
(not logged in) (NEJAKA_IP)> PASS demo
demo (NEJAKA_IP)> 230 Logged on
demo (NEJAKA_IP)> TYPE I
demo (NEJAKA_IP)> 200 Type set to I
demo (NEJAKA_IP)> MODE S
demo (NEJAKA_IP)> 200 MODE set to S.
demo (NEJAKA_IP)> PORT 172,17,0,3,172,153
demo (NEJAKA_IP)> 200 Port command successful
demo (NEJAKA_IP)> STOR soubor.zip
demo (NEJAKA_IP)> 150 Opening data channel for file upload to server of "/soubor.zip"
demo (NEJAKA_IP)> disconnected.
Budu rád za každou radu.. Díky!