Przesyłanie przez Socket

0

Mam takie pytanie... gdyż piechnat dał mi link http://piechnat.debian.black.pl/download.php?id=12&src=1 ZA CO JESTEMM BARDZ IWDZIĘCZNY tutaj jest przedstawione przeglądanie dysku i wysyłanie plików ptrzez Tsockety ... jestem w duzej sieci okolo 700 osób ... i jezeli osoba jest z tej samej grupy roboiczej transfer jest bardzo duzy... a jesli z innej grupy to transfer jest ok 30 -40 KB/s a czasem mniej !! TAK WIĘC PRZESYLANIE W MOJEJ GRUPIE ROBOCZEJ DZIAŁA OK choc czasem sie zatrzymuje... natomsiat jesli jest ktos z innej grupy robovczej to jessli plik jest więkrzy od 1 MB to szansa ze się sciągnie to 0% (czasem się sciągnie 50% czasem mniej lub wiecej). Po prostu progress bar sie zatrzymuje i koniec .... czy ktos miał taki problem ? moze trzeba zastosowac jakies szyfrowanie ?! ale przeciez Tsocety numerują sobie pakiety ?! Z GORY THX ZA POMOC !

0

Sciagnalem ten program i zauwazylem jeden blad a mianowicie "Buffer : array[0..4096]" of char jak na pakiet to stanowczo za duzo powinno byc "Buffer : array[0..1024] of char" dlatego zmien w cliencie i w serverze na 1024 i bedzie good!!!

0

dodam jeszcze ze "Buffer : array[0..4096] of char" to nie blad ale przez siec nie wysyla sie takich duzych pakietow bo nie dojda lepiej mniejsze a 1024 to jest 1KB i tego uzywa chyba 99% programow z downloadem czy uploadem YO!

0

thx własnie myslalem o tym ...ale dzienki ze mnie umpewniliscie !

0

Sciagnalem ten program i zauwazylem jeden blad a mianowicie "Buffer : array[0..4096]" of char jak na pakiet to stanowczo za duzo powinno byc "Buffer : array[0..1024] of char" dlatego zmien w cliencie i w serverze na 1024 i bedzie good!!!

thx, nie wiedziałem że wielkość buffora wpływa na jakoś transferu :-)

a co do proga do sorry bo stary jest i testowany tylko na 127.0.0.1 :-D

właśnie szykuje nowy project Piechnat Inviligator
i uwzględnie wznawianie zerwanego połączenia

0

jesli bys zrobil wznawianie transferu to odezwij się rex8@go2.pl

ale tak poza tym to w moim przypadu chyba jednak nie chodzi o wielkosc bufora :/ poniewac gdy plik zajmuje 2 MB to sciąga mi się ok 20 % tego pliku 400 KB .... a gdy pliik zajmuje np 700 MB to takze sciąga się ok 20 % czyli 140 MB ... to zalezy czasem np 20 MB....
takze nie wiem czy to jest zalezne w tym przypadku od bufora ....

0

Widzicie ja jak robilem program do wymiany plikow przez neta to robilem na poczatku 1024 ale pomyslalem dlaczego nie wiecej wiec tak zrobilem no i przy pierwszym pliku przesylanym juz byl blad nie wyslalo sie do konca a buffer mial chyba 2048. Jak zauwazyliscie bufer nie ma znaczenia na lokalnym IP i w niewielkim znaczeniu na Lan czym szybsze lacze tym wiekszy bufer mozna wysylac i czym gorsze lacze tym mniejszy.

0

Oczywiście nie wpadajcie w paranoję dając bufory np. 16 bajtów - owszem, pakiety pewnie dojdą, ale biorąc pod uwagę, że za każdym razem będzie to wysłanie i czekanie na potwierdzenie, a pakietów namnoży się jak mrówków w mrowisku - transfer spadnie drastycznie :d

0

Ja mialem taka zasade ze wysylalem 1024 bajty pliku i czekalem na odpowiedz 'OK' gdy taka doszla od odbiorcy znow wysyla i tak wkolka az nie skoncza sie bajty w pliku. Wszytko dzieki 'while' ale przedtym oczywiscie 'application.processmessage' i jedna zmienna 'boolean'. Dla nie kumatych przykadzik:
-1-zmienna boolean ustawiona na true
-2-ustawianie pliku na pozycji
-3-odczytanie 1024 bajty pliku od pozycji
-4-przydzielenie do bufora i wyslanie pakietem
-5-zmienna boolean na false
-6-czekanie
-7-otrzymanie wiadomosci ze juz doszedl pakiet
-8-zmienna bolean na true
-9-i znowu od poczatku

0

Skoro jesteśmy już przy temacie konkretnych czyichś rozwiązań - jak zrealizowałeś początek i koniec transferu? Podają sobie np. rozmiar pliku czy jak to się odbywa...?
Kiedyś próbowałem zrobić transfer pliku (z automatycznym wyborem kto ma klient, a kto serwer), ale nic z tego nie wyszło, masa bugów w kodzie była przytłaczająca :(

0

Rozwiazanie problemu konca pliku:
masz plik ktory ma 2.5 Kb
czyli 1024 + 1024 + 512
W buforze ustawiles ze z pliku ma byc pobierane 1024.
Wiec tak:

  1. pobieram 1024 z pliku
  2. sprawdzam czy Buffor jest mniejszy niz 1024
  3. jesli bufor jest rowny 1024 to znaczy ze jeszcze sie plik nie skonczyl i przesylasz
  4. pobierasz znowu 1024 tyle ze teraz pobralo sie 512
    5 sprawdzasz czy bufor jest mniejszy niz 1024
    6, jesli jest to znaczy ze to juz koniec pliku i wysylasz ostatnia jego czesc
0

Hahaha a co bedzie jesli plik ma powiedzmy 1024 + 1024 + 1024 = 3072. Przed wysylaniem pliku program wysyla odbiorcy rozmiar pliku ktory zostanie wyslany i gdy juz sie wysyla ten plik odbiorca sprawdza za kzdym razem czy rozmiar pliku odebranego rowna sie rozmiarowi pliku jesli tak to koniec jesli nie to odbieraj dalej hehe. A z tym ze jesli ma mniej niz 1024 to nie jest w 100% dobre bo gdy rozmiar pliku bedzie wielokrotnoscia 1024 to program stanie po sciagnieciu pliku.

0

Nie masz racji :)
1024+1024+1024 + 0
na koncu pobiera 0 a zero jest mniejsze od 1024 przesyla 0 i zamyka plik
mysle ze kazda droga jest dobra i twoja i moja. chociaz Twoja jest profesjonalna , przyznaje

POZDRO

0

hehe spoko! jakby co koncze juz program p2p (GoD) bedzie mozna ze stronki pobrac sa banery reklamowe <font color="white">na razie</span> <font color="red"> [ort!] </span>za friko aby widnialy w moim pogramie nalezy sie skonsultowac ze mna darektopolski@wp.pl aha kolejnosc reklam odpowiada kolejnosci wyslania mi banerka na maila wymiary 450*75

1 użytkowników online, w tym zalogowanych: 0, gości: 1