C# Proje - TCP Dosya Transfer

9 May 2017 · 2 dk okuma süresi

TCP protokolü kullanarak IP üzerinden dosya transferi yapar. Programın yapabildiklerini ve ileride yapabileceklerini aşağıda belirttim. Program Visual Studio 2017 ortamında C# programlama dili kullanarak geliştirilmiştir.

Proje Github linki: github.com/firateski/TCPFileTransfer

Proje Release Sürüm Linki: github.com/firateski/TCPFileTransfer/releases/latest

Desteklenen Diller

  • Türkçe

  • İngilizce

Not: Özellikle İngilizce olmak üzere dillerin geliştirmesine yardımcı olabilirsiniz.

Özellikler

  • Her türlü dosyayı transfer eder.
  • Transfer edilen dosyanın boyutunu ve ne kadar aktarıldığını anlık olarak gösterir.
  • Transfer işleminin ne kadarının tamamlandığını yüzde olarak gösterir(progressbar dahil).
  • Transfer hızını birim/saniye olarak anlık gösterir.
  • Dosyayı karşıdan kaydetmeye başlamadan önce dosya ismini ve boyutunu kullanıcıya göstererek onayını alır.
  • Transfer sırasında iptal etme özelliği vardır.
  • Transfer için hangi Port’un ve IP adresinin kullanılacağı belirtilebilir.

Eklenebilecek Özellikler

  • Unit testleri yapılabilir :(
  • Şu anda modemde port açan kullanıcı karşıdan gelen dosyayı karşılarken, diğer kullanıcı da bu porta dosyayı gönderiyor. Bu ayrımı ortadan kaldırıp sadece bir kişinin port açmasıyla her iki işlemin yapılmasına olanak sağlanabilir. Böylece kullanıcılardan birinin port açması her iki kullanıcının hem dosya alma hem de dosya gönderme işlemi yapmasını sağlayacaktır.
  • Dosya transfer sırasında duraklatma(pause) özelliği eklenebilir.
  • Dosya reddetildiğinde veya transfer iptal edildiğinde standart mesaj yerine farklı mesaj verilebilir.
  • Kullanıcı arayüzü daha kullanışlı ve güzel hale getirilebilir.

Ekran Görüntüleri

Dosya Transfer Uygulaması Ekran Görüntüsü Dosya Transfer Uygulaması Ekran Görüntüsü
Dosya Transfer Uygulaması Ekran Görüntüsü Dosya Transfer Uygulaması Ekran Görüntüsü
Dosya Transfer Uygulaması Ekran Görüntüsü Dosya Transfer Uygulaması Ekran Görüntüsü

Programcıdan Notlar

Önerilere, isteklere ve sorunların yüzüme vurulmasına açığım :)

Bu programı yapmamın asıl sebebi çevremdeki kişilerle sık sık dosya transferi yapmamız ve bunu sürekli mail veya 3. parti uygulamalarla yapmak zorunda kalmamızdır. Sonra kod yazabildiğimi hatırladım ve böyle basit bir uygulamaya yapmaya giriştim. Sonra madem giriştim; hata kontrolleriyle, kullanıcıya verilen mesajlarla ve kodların okunurluğuyla bunu biraz daha ileriye taşıyım belki kullanan olur diye düşündüm. Daha sonra kendimi Github üzerinde readme.md dosyasını düzenlerken buldum.