TCS i TSS pakiety z potwierdzeniem odbioru

0

Witam. Zastanawia mnie jedna ort!. Jesli mamy Klienta oraz serwer i klient wysyła plik do serwera to jak można się zabezpieczyć przed tym aby ten plik w całóści poleciał. Myślallem ze:
klient wysyła pakiet nr 1, serwer go odbiera i to potwierdza. klient jesli otrzyma potwierdzenie to wysyła drugi pakiet, w przypadku nieotrzymania potwierdzenia ponownie wysyła pakiet nr 1. Teraz problem jak to zapisać. Ma ktoś może coś gotowego przykładowego. Bo tu powstaje prawdziwa żąglerka w której się całkiem gubie.

0

Tam gdzie masz linijke która wysyła pakiety czyli np.

ServerSocket1.Socket.Connections[0].SendBuf(Buffer, SizeOf(Buffer))

zastap

repeat until ServerSocket1.Socket.Connections[0].SendBuf(Buffer, SizeOf(Buffer))<>-1
0

może poczytaj o gniazdkach http://klepisko.eu.org/~bartek/bgnet/ bo tu jest ładnie opisane

0

Niezupełnie o to mi chodzi. Jesli wysyłam dane i jeden z pakietów ulegnie zagubieniu podczas wysyłki lub też sie rozwali albo co kolwiek z nim się stanie innego to ten kto to wysyła i tak się o tym fakcie niedowie że część pakietu niedotarła do odbiorcy, a odbiorca po prostu przyłączy kolejny pakiet zapominając o tym co się rozsypał. Po prostu wyśle kolejny pakiet a pliczek wtedy już po złozeniu niebędzie kompletny. Jak temu zaradzić. chodzi mi o coś takiego że nim wyśle pakiet N-ty chce mieć pewność że pakiet N-ty-1 dotarł cały.

0

oblicz dodatkowo sume kontrolną teraz jesli pakiet ci sie nie zgadza z sumą kontrolną to wiesz że cos nie gra i wysyłasz zapytanie żeby wysłał ci to jeszcze raz

0
Studencik napisał(a)

Niezupełnie o to mi chodzi. Jesli wysyłam dane i jeden z pakietów ulegnie zagubieniu podczas wysyłki lub też sie rozwali albo co kolwiek z nim się stanie innego to ten kto to wysyła i tak się o tym fakcie niedowie że część pakietu niedotarła do odbiorcy, a odbiorca po prostu przyłączy kolejny pakiet zapominając o tym co się rozsypał. Po prostu wyśle kolejny pakiet a pliczek wtedy już po złozeniu niebędzie kompletny. Jak temu zaradzić. chodzi mi o coś takiego że nim wyśle pakiet N-ty chce mieć pewność że pakiet N-ty-1 dotarł cały.

nie jestem pewny, bo to dawno było ale o ile pamiętam to protokół TCP sam dba o zgubione pakiety i sam wysyła prośbę o ponowienie transmisji zagubionego lub błędnego pakietu. Inaczej wygląda sprawa z UDP, gdzie nie ma żadnej kontroli poprawności danych i trzeba o to dbać samemu.

0

Chodzi o coś takiego że każdy pakiet ma numer począwszy od 1 do n i zaczyna się transfer.
Zostaje wysłany pakiet nr 1. Po otrzymaniu go odbiorca odczytuje że to jest pakiet nr 1 i wysyła do nadawcy że otrzymał pakiet nr 1. Nadawca jeśli otrzyma pozytywną odpowiedz od odbiorcy wysyła pakiet nr 2 i wszystko nadal się powtarza aż do ostatniego pakietu. Chodzi mi dokładnie o coś takiego. W tym przypadku zawsze plik zostanie dostarczony w całości. Myśle że takie zabezpieczenie przyda się też nietylko mi ale i innym. pozdrawiam

0

TCP zrobi wszystko zeby pakiet dotarl caly w odpowiedniej kolejnosci wiec chcesz ulepszac rzecz ktora dziala dobrze.

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