Pregunta: | 26220 - ENVIO DE ARCHIVOS A UN COMPUTADOR REMOTO POR FTP |
Autor: | Randall Leiton |
Hola como esta, les saludo desde Costa Rica, buscando información sobre el uso del ftp en c++ , di con su pagina, me parece muy ilustrante y con bastante información, la duda que me llevo a visitar su pagina es la siguiente y estaria muy agradecido si me pudieran ayudar.
Tengo 2 servidores con sistema operativo Linux y desde un servidor local sse deben enviar archivos de diferente tipo hacia el servidor remoto, con la instrucción \"POPEN\" accedo a la siguiente linea de comando \" ftp ftp://usuario:password@host/archivo \" con el cual puedo abrir un pipe para obtener un archivo desde el servidor remoto al servidor local o sea un GET, lo que yo necesito es la sintaxis para lograr que la funcion me haga un PUT y con eso pueda enviar los archivos desde el servidor local hacia el remoto , les agradeceria si me pudiran informar si existe alguna funcion que me pueda ser util. |
Respuesta: | Luis Alberto Cedeño Flores |
Paisano como me le va con la transmisión vía FTP, espero que sea etapa superada, pero si no es así pongale atención a las siguientes lineas de código, las cuales las implemente desde Visual C++6.0 para Windows CE ya que debia de transmitir archivos de texto via modem.
RASDIALPARAMS rdp; HRASCONN hRas; hRas = NULL; HINTERNET hInternet; HINTERNET hFTP; memset(&rdp,0,sizeof(rdp)); rdp.dwSize = sizeof(rdp); rdp.szPhoneNumber[0] = TEXT('\0'); rdp.szCallbackNumber[0] = TEXT('\0'); wcscpy(rdp.szEntryName,_T("****")); wcscpy(rdp.szDomain,_T("*")); m_strMensaje = _T("Estableciendo conexión con servidor..."); UpdateData(FALSE); if(RasDial(NULL,NULL,&rdp,NULL,NULL,&hRas) != 0) { m_strMensaje = __T("Imposible comunicacion con servidor..."); UpdateData(FALSE); MessageBox(_T("No se ha podido establecer conexión con el Servidor"),_T("Error"),MB_ICONSTOP); //Desconectamos la línea. RasHangUp(hRas); return; } hInternet = InternetOpen(_T("CEFA"),INTERNET_OPEN_TYPE_DIRECT ,NULL,NULL,0); if(hInternet==NULL) { m_strMensaje = __T("Imposible establecer conexción con Internet..."); UpdateData(FALSE); MessageBox(_T("No se ha podido hacer conexión de Internet"),_T("Error"),MB_ICONSTOP); return; } hFTP = InternetConnect(hInternet,_T("NUMERO IP"),INTERNET_DEFAULT_FTP_PORT, _T("USUARIO"), _T("PASSSWORD"),INTERNET_SERVICE_FTP,0,0); m_strMensaje = _T("Estableciendo comunicación FTP..."); UpdateData(FALSE); if(hFTP==NULL) { m_strMensaje = _T("Fallo establecimiento de comunicación..."); UpdateData(FALSE); MessageBox(_T("No se ha podido establecer conexión vía FTP"),_T("Error"),MB_ICONSTOP); InternetCloseHandle(hInternet); //Desconectamos la línea. RasHangUp(hRas); return; } if(!FtpPutFile(hFTP,_T("Ruta local"),_T("Ruta remota"),INTERNET_FLAG_TRANSFER_BINARY ,0)) { m_strMensaje = _T("Transferencia fallida..."); UpdateData(FALSE); InternetCloseHandle(hFTP); InternetCloseHandle(hInternet); //Desconectamos la línea. RasHangUp(hRas); return; } InternetCloseHandle(hFTP); InternetCloseHandle(hInternet); //Desconectamos la línea. RasHangUp(hRas); |