Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-04-2002, 14:41   #1
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
[VB/VC++] come fare ftp di file?

Salve, volevo sapere soprattutto in c++ (ma eventualmente come seconda opzione anche con VB) come potrei fare un programma che fa un ftp di file.
Ossia io dispongo di un certo file.xxx e voglio creare un programma che passandogli l'IP del destinatario come parametro, lo invii (ftp, udp.. insomma quello che sapete) ad un utente.
Grazie mille e compl. per il forum!
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2002, 22:29   #2
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
devi usare funzioni del tipo:

InternetOpen(.....)

InternetConnect(......)

FtpPutFile(.....)

con i relativi parametri di inizializzazione; tutto questo lo trovi ben spiegato sul sito di Microsoft.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 00:04   #3
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
RE

Grazie della risposta...
stai parlando di VC++ o VB? Se è VC++ sarebbe meglio... sapresti dirmi di preciso il link dove cercarlo nella Microsoft?
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 00:33   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
misterx : quelle sono per BC++B

Con VC++ & MFC (WinInet) :

CInternetSession (prima crei questa e poi ottieni una delle due sotto)
CFtpConnection
CHttpConnection

Altrimenti se vuoi passare da un livello più basso ci sono CSocket e CAsyncSocket...

Con le API, sia per VC++ che VB...Windows Socket API :

http://msdn.microsoft.com/library/de...piref_7v1u.asp
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 07:40   #5
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da cionci
[b]misterx : quelle sono per BC++B
xchè dici BCB?

io le utilizzo e fanno parte della nutrita serie di funzioni presenti nel Win32sdk di Windows che dovrebbero funzionare in generale con tutti i compilatori;

difatti vengono da qui: http://msdn.microsoft.com/library/de...ternetopen.asp
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 08:42   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai ragione...scusa...
Chissà perchè ero convinto che fossero del Borland...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 11:57   #7
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
Oddio mi sa che è complicatina... ho cercato anche nei link proposti dal forum... se sapete magari qualche programma svolto per prendere spunto, postatemelo per favore.
Grazie mille.
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 12:24   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In liena di massima non dovrebbe essere molto complicato..

Così ad occhio :

CInternetSession s;
CFtpConnection *f = s.GetFtpConnection(tutti i vari parametri);

f->SetCurrentDirectory(dir);
f->PutFile(tutti i vari parametri);

f->Close();
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2002, 20:31   #9
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Prova questo codice che dovrebbe essere universale, almeno lo credo al 90%.

Purtroppo non sono un raffinato alla Cionci, quindi pochi commenti
ma.....
funziona, l'ho appena provato, ti permette di scaricare un file da 25Kb dal sito ftp di Borland.....

ricordati di inserire:

#include "WININET.h"

e di avere nella fase di link il file (lib): Inet.lib (magari in VC++ non vi è questa necessità)


forza e coraggio, che non è poi così difficile: basta avere un pò di pazienza..


fammi sapere



void *FINet;
void *FFtpHandle;
BOOL Transfer;

FINet = InternetOpen("WININET1",0,NULL,0,0);

if(FINet == NULL) {
ShowMessage("Err(1) Connessione non riuscita!\nsicuro che i parametri sono corretti?");
return;}

FFtpHandle = InternetConnect(FINet,
"ftp.borland.com", //sito ftp
0,
0, // nome dell'utente
0, // password
INTERNET_SERVICE_FTP,
0,
0);
if(FFtpHandle == NULL) {
ShowMessage("Err(2) Connessione FTP non riuscita!\nsicuro che i parametri sono corretti?\nOppure è presente un firewall di rete");

return;}

Transfer = FtpGetFile(FFtpHandle,
"/pub/bcppbuilder/techpubs/bcb5/b5cg.zip",
"b5cg.zip",
TRUE,
0,
FTP_TRANSFER_TYPE_BINARY,
0);
if(Transfer == NULL) {
ShowMessage("Err(3) Ricezione file non riuscita!");
return;
}
else
ShowMessage("File ricevuto con successo");
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 09:48   #10
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
Azz... a me non funziona...
se lo inserisco coem l'hai scritto mi da errore nel file wininet.h:

microsoft visual studio\vc98\include\wininet.h(48) : error C2146: syntax error : missing ';' before identifier 'HINTERNET'
f:\programmi\microsoft visual studio\vc98\include\wininet.h(48) : fatal error C1004: unexpected end of file found
Error executing cl.exe.


inoltre io non devo scaricare un file dal server della borland, ma passarlo ad un altro utente via ftp.
Grazie per l'aiuto
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 10:13   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
se devi inviare usa:

FtpPutFile()

in luogo di:

FtpGetFile()



esempio:



FFtpHandle = InternetConnect(
FINet,
"ftp.miosito.com", //oppure l'IP (192.xxx.xxx.xxx) che dovrebbe funzionare lo stesso
0,
0, // nome dell'utente
0, // password
INTERNET_SERVICE_FTP,
0,
0);


Transfer = FtpPutFile(FFtpHandle,
"miofile.zip",
"miofile.zip",
FTP_TRANSFER_TYPE_BINARY,
0);



Per quanto riguarda gli errori, molto strano, in quanto il codice postato l'ho scritto in modo lineare, come suggerisce Microsoft.

Prova a vedere se il file da includere è un altro.....

Non avendo VC++ non posso fare delle prove.....
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 10:17   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prova ad include in questo modo :

#include <windows.h>
#include <wininet.h>
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 10:45   #13
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
Ragà scusate se vi rompo ancora.. alla fine mi odierete... ecco il programma:

#include <windows.h>
#include <wininet.h>


void main()
{
void *FINet;
void *FFtpHandle;
BOOL Transfer;

FINet = InternetOpen("WININET1",0,NULL,0,0);

if(FINet == NULL) {
//ShowMessage("Err(1) Connessione non riuscita!\nsicuro che i parametri sono corretti?");
return;}

FFtpHandle = InternetConnect(
FINet,
"ftp.miosito.com", //oppure l'IP (192.xxx.xxx.xxx) che dovrebbe funzionare lo stesso
0,
0, // nome dell'utente
0, // password
INTERNET_SERVICE_FTP,
0,
0);

if(FFtpHandle == NULL) {
// ShowMessage("Err(2) Connessione FTP non riuscita!\nsicuro che i parametri sono corretti?\nOppure è presente un firewall di rete");

return;}

Transfer = FtpPutFile(FFtpHandle,
"miofile.zip",
"miofile.zip",
FTP_TRANSFER_TYPE_BINARY,
0);


if(Transfer == NULL) {
// ShowMessage("Err(3) Ricezione file non riuscita!");
return;
}
// else
// ShowMessage("File ricevuto con successo");

}


Ho messo // su Showmessage perchè non mi riconosce la funzione, ma al massimo le posso cambiare con printf...
Cmq non mi dà errori di compilazione, ma facendo il build ottengo questa roba strana:
Linking...
prova.obj : error LNK2001: unresolved external symbol __imp__FtpPutFileA@20
prova.obj : error LNK2001: unresolved external symbol __imp__InternetConnectA@32
prova.obj : error LNK2001: unresolved external symbol __imp__InternetOpenA@20
Debug/prova.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.


ç_ç
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 10:49   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Project -> Settings -> Link -> Object/Library modules...mettici Inet.lib...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 11:04   #15
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
Oddio perchè sono così imbranato..... vi prego perdonatemi...
ho messo inet.lib ma mi dà Linking...
LINK : fatal error LNK1104: cannot open file "Inet.lib"
Error executing link.exe.

Ho aggiunto Inet.lib nella linea Object/library modules
Le altre impostazioni sono:
Category: general
Output file name: Debug/prova.exe
Object library modules: kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Inet.lib
sono spuntati: general debug info;link incrementally

Scusate oggi mi sento ultra rompiball...
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 11:09   #16
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
ehm.. non so se ho fatto bene, ma ho copiato WININET.LIB in \debug , l'ho aggiunto in prokect/setting e ora pare funzionare, faccio alcune prove e poi vi dico.
Grazie mille!

Un ultima considerazione:
in "ftp.miosito.com", //oppure l'IP (192.xxx.xxx.xxx) che dovrebbe funzionare lo stesso

devo mettere l'ip della macchina che funiona da server del file?
Perchè provando ad autopassarmi il file compare l'errore proprio di quel punto: Err(2) Connessione FTP non riuscita!\nsicuro che i parametri sono corretti?\nOppure è presente un firewall di rete
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 11:17   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Bastava mettere Wininet.lib...senza copiarlo nella dir...

Per il resto non so cosa dirti...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 11:24   #18
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Mi sa che hai fatto benissimo ad usare wininet.lib in quanto, essendo passato un pò di tempo, non mi ricordo dove cavolo avevo preso la Inet.lib, forse l'avevo ricompilata x BCB.

Sorry se ti ho depistato

Dai che ci siamo
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 11:33   #19
MisterW2
Member
 
Iscritto dal: Oct 2001
Messaggi: 57
Si infatti, vi ringrazio a tutti e due siete stati gentilissimi...
Misterx, un'ultima spiegazione....

"ftp.miosito.com", //oppure l'IP (192.xxx.xxx.xxx)
qyesto dovrebbe essere l'indirizzo del server dico bene? che senso ha metter eun generico ftp.miosito.com? devo mettere l'indirizzo ip del server (quello che inizia con 192.... e non quello del mio pc che inizia con 245....)

Transfer = FtpPutFile(FFtpHandle,
"miofile.zip",
"miofile.zip",
al posto di mio file.zip, in entrambi, devo mettere la giyusta path del file risiedente nel pc del server?
MisterW2 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2002, 12:13   #20
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da MisterW2
[b]Si infatti, vi ringrazio a tutti e due siete stati gentilissimi...
Misterx, un'ultima spiegazione....

"ftp.miosito.com", //oppure l'IP (192.xxx.xxx.xxx)
qyesto dovrebbe essere l'indirizzo del server dico bene? che senso ha metter eun generico ftp.miosito.com? devo mettere l'indirizzo ip del server (quello che inizia con 192.... e non quello del mio pc che inizia con 245....)

Transfer = FtpPutFile(FFtpHandle,
"miofile.zip",
"miofile.zip",
al posto di mio file.zip, in entrambi, devo mettere la giyusta path del file risiedente nel pc del server?

nel caso vuoi inviare un file presente nel tuo hard-disk al tuo sito, dovrai scrivere semplicemente solo i nomi dei file sorgente/destinazione in quanto il percorso di destinazione vengono risolti automaticamente nel momento in cui tu apri la connessione col nome del sito ftp, username, e tua password.


esempio:
voglio traferire un file JPEG di nome miafoto.jpg sul mio sito presente su digiland, il mio username=pinco, la password=pallino quindo scriverò:

FFtpHandle = InternetConnect(
FINet,
"ftp.digiland.it",
0,
"pinco",
"pallino",
INTERNET_SERVICE_FTP,
0,
0);


if(FFtpHandle == NULL) {
// gestione dei valori di ritorno
return;}

Transfer = FtpPutFile(FFtpHandle,
"miafoto.jpg ",
"miafoto.jpg ",
FTP_TRANSFER_TYPE_BINARY,
0);



Scusa per le banalità ma sono presenti solo per chiarezza.

Spero di essere stato chiaro
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
iPad 12 arriverà nel 2026 e sar&a...
AMD per il futuro dell'IA in Corea del S...
L'IA agentica incrementa il rischio cybe...
Rapporto Clusit 2026: finanza e infrastr...
Gli stessi sali che solidificano il tofu...
Il conflitto in Medio Oriente minaccia l...
OnlyFans, scomparso il proprietario Leon...
Le migliori offerte Amazon da leggere in...
Recensioni su Trustpilot non affidabili,...
Il CISPE denuncia Broadcom all'antitrust...
Il cyberattacco che negli Usa ha trasfor...
AI Grid Intelligent Orchestration, l'inf...
Roborock Qrevo CURV 2 Flow X: tecnologia...
Quanto viaggia il modem di iPhone Air? I...
300 GB di memoria RAM per le future gene...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v