Softwise Consultoria e Informática Desenvolvendo soluções



Documentos relacionados
FTP FILE F TRANSFER PROTOCOL. Tópicos

Universidade Federal do Rio Grande do Norte

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

Documentação SC501GER.DLL V2.2

PROTOCOLOS DE COMUNICAÇÃO

O espaço de nomes DNS Registros de recursos de domínio Servidores de nome

Manual do Desenvolvedor Linha VP Tanca

FTP Protocolo de Transferência de Arquivos

FTP: protocolo de transferência de arquivos

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

Correio Eletrônico e os protocolos SMTP, POP3 e IMAP

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Construção de um protótipo de comunicação por tecnologia Bluetooth para o servidor Open Simulator

Neste capítulo, vamos utilizar as funções de API para o serviço de FTP, que permitirá o acesso a uma máquina remota para enviar arquivos.

Documentação do retorno XML referente projeto Busca Endereço por CEP

Transferência de arquivos (FTP)

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

EN3611 Segurança de Redes Prof. João Henrique Kleinschmidt Prática Wireshark Sniffer de rede

DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/ :00.

INTRODUÇÃO OBJECT PASCAL/DELPHI

Arquivos. Em relação ao Scilab, existem alguns tipos de arquivos que podem ser lidos, criados ou modificados.

Pratica JFlex. Prática criando o primeiro analisador léxico

User Manager 1.0. edtusuario Nome do novo Usuário a ser criado edtsenha Senha do novo usuário Label

INF1013 MODELAGEM DE SOFTWARE

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Informática II Ficha 5_resolução

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

O que você precisa saber sobre FTP na certificação LPI nível 1

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Permite o acesso remoto a um computador;

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

Servidor de FTP (Protocolo de Transferência de Ficheiros)

Programação Estruturada e Orientada a Objetos

Para baixá-lo entre no site : Selecione a aba Downloads ; Clique no link: Microsoft Visual C# Express 2010; Por meio desse

Descrição de Arquitectura e Design. SyncMasters

Tópicos Especiais em Informática

Integração por Web Services

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

Aula 30 - Sockets em Java

Desenvolvimento de Aplicações para Internet Aula 7

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

JDBC. Prof. Márcio Bueno

Índice: Nitgen do Brasil

Servidor de s e Protocolo SMTP. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Laboratório - Exploração do FTP

Configuração de um servidor FTP. Campus Cachoeiro Curso Técnico em Informática

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Como Conectar e configurar Câmeras FullSec em um DVR CVI de 16CH FullSec -ACESSO REMOTO VIA CELULAR

Transferência de Arquivo: Protocolo FTP

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Redes de Computadores e a Internet

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Redes de Computadores

Data Autor Descrição Revisão Configuração HX600 via Rede Ethernet 1.0

Guia do RepositorioDocumento

ÍNDICE # $% & & & & +,) ... *,. *,... / /

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Linguagem Algorítmica OO. Linguagem Algorítmica

Manipulando Strings no VBA (Replace, Mid e InStr)

Conteúdo. Especificação HTTP v1.1

2.) Listagem Página a Página

Linux Networks Servers

Nota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Configurando o Roteador Prof. Isaías Lima. Carregar o arquivo de texto para configurar outro roteador usando o HyperTerminal.

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Collections. Objecto Collection. Propriedades e métodos

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

GUIA INTEGRA SERVICES E STATUS MONITOR

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

Programação de Computadores - I. Profª Beatriz Profº Israel

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos


Laboratório de Programação I

Camada de Aplicação Protocolo FTP e Correio Eletrônico

API de Integração VB 6+

Como atualizar o arquivo de licença do HSC ISS Free

2 Orientação a objetos na prática

PHP (Seções, Cookies e Banco de Dados)

Expressões Lógicas Comandos de Seleção

Programação com sockets (em Java)

MANIPULAÇÃO DE STRINGS

Apresentação... Nome: Vanderlei Cordeiro Frazão

PHP (PHP Hypertext Preprocessor)

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Persistência de Dados

Manual de Operações. Versão 1.0. Janeiro/2009. Autor : Carlos Valotto

Atividade Proposta da Disciplina: Laboratório de Rede de Computadores

AnsiLowerCase Converte todos os caracteres de uma string para minúsculo; Sintaxe: AnsiLowerCase(const S: string): string;

REDES DE COMPUTADORES

Transcrição:

Criando um Project Console 1 New/Project/Console Application Código Fonte Imports System.Net.Sockets Imports System.Text Imports System.Net Public Module FtpExemplo Public Sub Main() ' Conecta a um servidor FTP. Dim FTP As New FtpClient FTP.Connect("ftp.adobe.com", "anonymous", "ftpuser@adobe.com") ' Solicita o arquivo Dim Stream As NetworkStream = FTP.DownloadFile("license.txt", True) ' Copia os dados em pacote de 1K Dim fs As New System.IO.FileStream("c:\license.txt", IO.FileMode.Create) Dim BytesRead As Integer Do Dim Bytes(1024) As Byte BytesRead = Stream.Read(Bytes, 0, Bytes.Length) fs.write(bytes, 0, BytesRead) Loop While BytesRead > 0 -- ' Fecha a conexão de rede e o arquivo -- Stream.Close() fs.close() ------ ' Restaura a msg de confirmação do server ------ FTP.ConfirmDownloadComplete() Console.WriteLine("Pressione Enter para desconectar") Console.ReadLine() FTP.Disconnect() End Module

Public Class FtpClient Inherits System.ComponentModel.Component ' Conexão TCP interna Private Client As New TcpClient Private Stream As NetworkStream ' Estado da conexão Private _Connected As Boolean = False Public ReadOnly Property Connected() As Boolean Get Return _Connected End Get End Property ' Alguns comandos constates Private Class Commands Public Const User As String = "USER " Public Const Password As String = "PASS " Public Const Quit As String = "QUIT" & vbnewline Public Const GetFile As String = "RETR " Public Const UsePassiveMode As String = "PASV" & vbnewline Public Const UseBinary As String = "TYPE I" & vbnewline Public Const UseAscii As String = "TYPE A" & vbnewline End Class Private Enum ReturnCodes ServiceReady = 220 Accepted = 200 PasswordRequired = 331 UserLoggedIn = 230 EnteringPassiveMode = 227 StartingTransferAlreadyOpen = 125 StartingTransferOpening = 150 TransferComplete = 226 End Enum Public Sub Connect(ByVal servername As String, ByVal username As String, ByVal password As String) If Connected Then Me.Disconnect() ' Conecta ao servidor FTP sempre na ' porta 21 Client.Connect(serverName, 21) Stream = Client.GetStream()

' Envia o nome do usuário Dim Response As String Response = GetResponse() Response = Send(Commands.User & username & vbnewline) If CheckCode(Response, ReturnCodes.PasswordRequired) Then ' Envia a password Response = Send(Commands.Password & password & vbnewline) If Not (CheckCode(Response, ReturnCodes.UserLoggedIn)) And Not (CheckCode(Response, ReturnCodes.ServiceReady)) Then Throw New ApplicationException("Não foi possível efetuar login.") _Connected = True -- ' Uma breve pausa no caso de ainda ' existir dados para serem retornados ' 300 milisegundos -- System.Threading.Thread.Sleep(300) If Stream.DataAvailable Then GetResponse() Public Sub Disconnect() If Connected Then If Not TransferClient Is Nothing Then TransferClient.Close() Send(Commands.Quit) _Connected = False ' Segunda conexão para recuperar ' o arquivo Private TransferClient As TcpClient Private TransferEndpoint As IPEndPoint Public Function DownloadFile(ByVal filename As String, ByVal binarymode As Boolean) As NetworkStream ' Cria uma conexão para a segunda ' porta em mode passivo CreateTransferClient() TransferClient.Connect(TransferEndpoint) SetMode(binaryMode) Dim Response As String = Send(Commands.GetFile & filename & vbnewline)

If Not CheckCode(Response, ReturnCodes.StartingTransferAlreadyOpen) And Not (CheckCode(Response, ReturnCodes.StartingTransferOpening)) Then Throw New ApplicationException("Não foi possível abrir a conexão.") ' Deixa o cliente ler os dados para ' um stream de rede. ' Isso é mais eficiente que criar e ' retonar um array de byte, porém ' confia no cliente para fechar um ' stream. Return TransferClient.GetStream() Private Sub CreateTransferClient() Dim Response As String = Send(Commands.UsePassiveMode) If Not CheckCode(Response, ReturnCodes.EnteringPassiveMode) Then Throw New ApplicationException("Erro entrando em modo passivo.") ' O endereço IP e o número da porta ' á atachado para a resposta. ' Recupera esses detalhes. Dim StartPos As Integer = Response.IndexOf("(") Dim EndPos As Integer = Response.IndexOf(")") Dim IPAndPort As String = Response.Substring(StartPos + 1, _ EndPos - StartPos - 1) Dim IPParts() As String = IPAndPort.Split(","c) Dim IP As String = IPParts(0) + "." + IPParts(1) + "." + IPParts(2) + "." + IPParts(3) Dim Port As Integer = Convert.ToInt32(IPParts(4)) * 256 + Convert.ToInt32(IPParts(5)) ' Cria uma conexão de tranferencia ' de dados. TransferClient = New TcpClient TransferEndpoint = New IPEndPoint(IPAddress.Parse(IP), Port) Private Sub SetMode(ByVal binarymode As Boolean) Dim Response As String If binarymode Then Response = Send(Commands.UseBinary) Else Response = Send(Commands.UseAscii) If Not CheckCode(Response, ReturnCodes.Accepted) Then Throw New ApplicationException("Não foi possível trocar o modo.")

Public Sub ConfirmDownloadComplete() Dim Response As String = GetResponse() CheckCode(Response, ReturnCodes.TransferComplete) Private Function Send(ByVal message As String) As String ' Envia um comando em formato ASCII Dim MessageBytes() As Byte = Encoding.ASCII.GetBytes(message) Stream.Write(MessageBytes, 0, MessageBytes.Length) Debug.WriteLine(message) ' Retona o código da resposta Return GetResponse() Private Function GetResponse() As String ' Recupera todas as linha diponíveis Dim Character As String Dim Response As String = "" Do Do Character = Chr(Stream.ReadByte()).ToString() Response &= Character Loop Until Character = Chr(10) 'System.Threading.Thread.Sleep(5) Loop While Stream.DataAvailable Response = Response.Trim(New Char() {Chr(13), Chr(10)}) Debug.WriteLine(Response) Return Response Private Function CheckCode(ByVal response As String, ByVal expectedcode As ReturnCodes) As Boolean Return Val(response.Substring(0, 3)) = expectedcode Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then Disconnect() MyBase.Dispose(disposing) End Class

Resultado Obs: Caso o arquivo c:\licence.txt já exista um erro será gerado. Voltar para Softwise