Başlangıç > Kodlar > Visual basic’de inet ile dosya indirmek

Visual basic’de inet ile dosya indirmek


Bu kodlar ile Inet kullanımı hakkında daha fazla bilginiz olacak...

Merhaba. Burada Inet (Internet Transfer Control) nesnesinin kullanımı hakkında kısa bilgiler yer almaktadır. Ayrıca örnek olarak da bir download programı yazdım ve kodlarını sizlerle paylaşıyorum.
İlk önce forma aşağıdaki resimde görüldüğü gibi iki textbox, bir commandbutton ve bir Inet nesnesi ekleyin.


Textboxların adını “Adres” ve “Kayıtadı”, commandbuttonun ise “Başla” olarak değiştirdikten sonra aşağıdaki kodları “Başla” isimli commandbuttonun click olayına yapıştırın. Daha sonra Inet nesnesinin Protocol özelliğini 2-icFTP değerini seçin. Hepsi bu…

'********©2003*********
'*****Volkan ESGEL*****
'***vesgel@mynet.com***
'**www.essoft.cjb.net**
'-----Bu kod tamamen eğitim amaçlıdır. Bu kod ile Inet nesnesinin kullanımını daha iyi öğrenebilirsiniz...-----
‘*************************
Private Sub Başla_Click()
Dim Mx() As Byte 'Mx() tanımlanıyor...
Me.Caption = "Dosya yükleniyor..." 'Formun başlğı değiştiriliyor...
Mx() = Inet1.OpenURL(Adres.Text, 1) 'Adres açılıyor...
Open App.Path & Kayıtadı.Text For Binary Access Write As #1 'Etkin dizine belirtilen isim ve uzantıda dosya oluşturuluyor...
Put #1, , Mx() 'Dosya kaydediliyor...
Close #1 ' #1 Kapatılıyor...
MsgBox ("Dosya yüklendi..." & vbCrLf & "adres=" & App.Path & Kayıtadı.Text) 'Sonuç olarak dosyanın yüklendiği dizin ve dosya adı mesaj olarak gönderiliyor...
End Sub
‘*************************
Artık program çalışmaya hazır. Adres kısmına (www.essoft.cjb.net/essoft.gif) gibi bir internet adresi ve Dosya Adı kısmına bilgisayarınıza dosyanın kaydedileceği ismi (“essoft.gif” gibi) girdikten sonra “İndir” tuşuna basın. Dosya indiriliyor… Dosya indirme işlemi bittiğinde ise dosyanın hdd’nizde kaydedildiği dizin vb. bilgiler veriliyor.

******Inet ( Internet Transfer Control ) Hakkında Bilgiler******

¦ Remote Port
İstemci ile bilgisayarın sunucu bilgisayara bağlantı sırasında kullanacağı port numarasını belirler. Bu bilgi verilmez ise varsayılan değerler işleme konur ve FTP için 21, http için 80 portu kullanılır.
¦ Protocol
Bağlantı sırasında kullanacağımız protokolü belirler. Bu gerçekten önemlidir. Her protokolün farklı kuralları vardır ve bağlandığımız sunucu ile aynı protokole bağımlı bir şekilde veri alışverişi sağlamazsak sistem zarar görecektir. Bir FTP sunucuya http ile bağlantı kurmaya çalışmamız hem istemci hem de sunucuya hata mesajlarıyla geri dönecektir ve bağlantı kurulamayacaktır. Bu nedenle ulaşmak istediğimiz veriye en uygun sunucuyu  seçtikten sonra bu sunucunun kabul ettiği protokole uygun bir şekilde bağlantı isteğinde bulunmalıyız.
Inet nesnesi 3 farklı protokolü taban olarak kabul edebilir:
İcUnknown: bilinmeyen; icDefault: varsayılan; icFTP: FTP; icHTTP: http; icHTTPS: HTTPS.
¦ Request Time Out
Bağlantı isteği gönderildikten sonra istemci, sunucunun bağlantıyı kabul etmsini bekler, bir süre yanıt gelmezse beklemekten vazgeçip bağlantıyı keser. İşte bu süreyi requesttimeout ile belirliyoruz. Requesttimeout değeri saniye cinsinden yazılır ve sınırsız süre verilmek istendiğinde 0 değeri atanır.
Sunucu çok yoğun çalışıyorsa ve isteklere cevap vermede gecikiyorsa zaman aşımı süremizi yüksek tutmamız gerekir. Aksi takdirde henüz sunucuda bize sıra gelmeden bağlantı isteği iptal edilir ve asla bağlantı gerçekleşmez.
¦ OpenURL
Inet nesnemizin bağlanacağı sunucu ve ulaşacağı dosyayı bu komutla belirleyebiliriz. Bu komut .openURL(“adres”, “veri_tipi”) şeklinde kullanılır. Buradaki veri tipi değeri 0 veya 1 olabilir. Hiçbir değer verilmezse 0 kabul edilir. 0 değeri bize gelen verilerin string formatında olmasını sağlar. 1 değeri ise aynı verileri binary formatta ve byte dizisi halinde getirir. OpenURL komutunun daha gelişmiş olan alternatifleri de vardır.
¦ StillExecuting
Gelişmiş uygulamalarımızda sıkça kullandığımız komutlardan biri de stillexecuting komutudur. Bu aslında komut değil Boolean bir değerdir. Inet nesnemize herhangi bir komutu verip işlemesini sağladıktan sonra işlemin bitip bitmediğini stillexecuting ile öğrenebiliriz. Inet nesnesi aynı anda birden fazla işlem yapamayacağı için işlem yaptığı sırada başka bir işleme zorlanması hatalara neden olacaktır. Bu gibi durumlarda  stillexecuting ile sistemin meşgul olup olmadığını kontrol ederek sıradaki komutları beklemeye alabiliriz. Stillexecuting değerinin True olması sistemin meşgul olduğunu, False olması ise işlemin tamamlandığını belirtir.
¦Execute
OpenURL metodu ile aynı işi görmesine rağmen daha gelişmiştir. Sunucu ile sürekli haberleşme sağlar ve sunucu ile dosyalama hizmetlerini başlatma yetkisine sahiptir.
¦ AccessType
Nesnemizin Internet veya Intranet bağlantısı sırasında kullanacağı bağlantı hizmetlerini belirlemek amacıyla kullanılır. Direkt bağlantı kurulacaksa bu değer boş bırakılabilir. Yine bu değere bağlı olarak Proxy server bağlantısı yapılacağı nesneye bildirilir ve daha sonra Proxy değeri verilerek hedef sunucuya ulaşılır.
¦ Proxy
Bu değer sadece AccessType değeri 2 olduğunda yani “Proxy kullan” emri verildiğinde devreye girer. IP adresi veya domainname değeri alabilir. Bu kullanılacak olan Proxy server adresidir ve hedef sunucuya ulaşmadan önce bu adrese bakılarak bir proxy’den çıkış yapılır.

Benden bu kadar… Download programı örneğini ve Inet kontrolünün kullanımı hakkında yeterli bilgiyi burada verdiğime inanıyorum. Eğer bu yazıyı yazarken atladığım veya yanlış yazdığım şeyler varsa bana mesaj atın. Bu programı daha da geliştirerek çok güçlü Download programları yazılabilir. Bu kodun daha da geliştirilmiş şeklini görmek istiyorum. Onun için sizden bu koddan yola çıkarak geliştirmiş olduğunuz kodları programlama.com’da veya vesgel@mynet.com ’da görmek beni çok sevirdirecek. Umarım öyle olur. Takıldığınız yerlerde bana mesaj atabilirsiniz. Umarım bu kodlar size Inet kullanımını daha iyi anlatacaktır.

Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: