Gönderen Konu: Network'ten dosya göndermek  (Okunma sayısı 4453 defa)

Network'ten dosya göndermek

« : 04.08.2010 12:16:16 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
Selamlar, malumunuz network üzerinden dosya göndermek her daim problemlidir, uğraştırır, çeşitli libraryler vardır, kendiniz yazarsınız vs.
Windows için aşağıdaki şu API çok kullanışlı, ihtiyaç duyan olur kesin diye yazayım dedim: (win2k ve sonrasında destekleniyor)

http://msdn.microsoft.com/en-us/library/ms740565.aspx

BOOL TransmitFile(
    SOCKET hSocket,
    HANDLE hFile,
    DWORD nNumberOfBytesToWrite,
    DWORD nNumberOfBytesPerSend,
    LPOVERLAPPED lpOverlapped,
    LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
    DWORD dwFlags
);

socket ve file handle'larını verip dosyayı gönderebiliyorsunuz. Async de çalışabiliyor.
Linuxteki SendFile gibi. (http://tautology.org/software/man/sendfile)
- endo of glance -

Network'ten dosya göndermek

« Yanıtla #1 : 04.08.2010 13:48:04 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
ama filesize'ı DWORD olarak kullanırsak, unsigned da olmadığı durumda ben bu fonksiyonla 2 GB'dan büyük dosyaları filesystem desteklese bile gönderemem ki. oldu mu şimdi? öngürüsüzlük işte noolcek. :p

Network'ten dosya göndermek

« Yanıtla #2 : 05.08.2010 15:51:56 »
Hızlı düğmeleri aç

ssg

İleti: 331

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
suna dikkat etmek lazim:

Alıntı
Workstation and client versions of Windows optimize the TransmitFile function for minimum memory and resource utilization by limiting the number of concurrent TransmitFile operations allowed on the system to a maximum of two. On Windows Vista, Windows XP, Windows 2000 Professional, and Windows NT Workstation 3.51 and later only two outstanding TransmitFile requests are handled simultaneously; the third request will wait until one of the previous requests is completed.

Network'ten dosya göndermek

« Yanıtla #3 : 05.08.2010 15:56:29 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
haklisin ssg, bi yonden de bu iyi bi ozellik olabilir, yani 10 dosya birden gondermeye calisinca kendimiz bi queue yapmak zorunda kalmayiz ve bantin tumunu iki dosya icin kullanmis oluruz.
dikkat edilmesi gereken iyi bi ozellik :)
- endo of glance -