Winsock ile Dosya Transferi

BoZaN HaCk

Katılımcı Üye
16 Ara 2012
946
0
KıZıLTepE
'Winsock ile Dosya Alış-Verişi
'Winsock ile dosya alıp göndermenin en kolay yolu!
'Örnek kodda sadece dataarrival olayını yazdim
'winsock bağlantı işlemlerini işin en kolay kısmı
'bu kod hem alıcı hem de gönderici için geçerlidir
'alıcı
' Winsock1.LocalPort = 100
' Winsock1.Listen
'ile dinleyecek ve connectionrequest olayında ise
' Winsock1.Close
' Winsock1.Accept (RequestID)
'ile kabul edecek
'gönderici ise
' Winsock1.Connect RemoteHost, 100
'ile bağlanıp
' DosyaGonder "c:\dosya.exe"
'fonksiyonunu kullanarak dosya göndermeye başlayacak

'Kolay Gelsin


Dim DosyaACIKMI As Boolean

Public Function DosyaGonder(HangiDosya As String)
Dim Gecici As String
Dim Gecici2 As Long
Dim DosyaBoyutu, Gonderilen

Open HangiDosya For Binary Access Read As #1 'Dosya binary formatta açılıyor
DosyaBoyutu = FileLen(HangiDosya) 'Dosya boyutu alınıyor
Gecici2 = 5000 'dosya parça parça gönderileceği için bir parçanın boyutu belirleniyor
Gonderilen = 0
Do While Gonderilen < DosyaBoyutu
If (DosyaBoyutu - Gonderilen) < Gecici2 Then 'eğer gidecek parça gecici2 den küçükse
'sadece gidecek parça kadar yer ayrılıyor...
Gecici2 = DosyaBoyutu - Gonderilen
Me.Caption = "Dosya Gönderiliyor..."
Gecici = Space$(Gecici2)
Get 1, , Gecici
Winsock1.SendData Gecici
Gonderilen = Gonderilen + Gecici2
Else 'değilse aynen gidiyor buradaki işlem yukarısı ile aynı
'kod kısaltılabilir ama anlaşılır olması için böyle daha iyi
Me.Caption = "Dosya Gönderiliyor..."
Gecici = Space$(Gecici2) 'gecici değişkenine yer ayrılıyor
Get 1, , Gecici 'dosyadan gecici2 kadar bilgi okunuyor
Winsock1.SendData Gecici 'gönderiliyor
Gonderilen = Gonderilen + Gecici2 'gönderilen değişken arttırılıyor
End If
DoEvents
Loop 'dosya gönderme işlemi bittiğine göre bunu da haber vermemiz gerekir.
Winsock1.SendData "son" 'karşı taraf bunu kontrol edecek
'eğer gelen bilgi "son" ise dosyayı kapatacak aksi takdirde devam edecek
'biz burda sonlandırıyoruz.
Close #1 'kendi dosyamızı kapatıyoruz
Me.Caption = "Tamamlandı" 've bitti.
End Function


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Gecici As String
Dim Gelen As String

If DosyaACIKMI = False Then 'dosyanın daha önceden açık olup olmadığı kontrol ediliyor.
Open "c:\deneme.exe" For Binary Access Write As #2 'gelen dosya c:\deneme.exe ile
'kaydediliyor.siz bunu değiştirebilirsiniz.
DosyaACIKMI = True
ElseIf DosyaACIKMI = True Then
End If

Winsock1.GetData Gelen 'bilgi alınıyor
Gecici = Gelen 'gecici bir değişkene atanıyor

If Gecici = "son" Then 'eğer son parçaysa dosya kapanıyor;
Close #2
DosyaACIKMI = False
Else
Put 2, , Gecici 'değilse dosyaya yazılıyor.
End If 've bitti
End Sub
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.