![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czesc.
Mam dokumentacje protokolu opartego o UDP: http://xbtt.sourceforge.net/udp_tracker_protocol.html ... i nie bardzo wiem jak to ugryzc. Chodzi mi o to, jak mam podac dane. Nie moge uzmyslowic sobie co to jest offset - zakladam, ze jest to n-ty bajt w ciagu ?
Gdyby ktos byl tak mily, i wytlumaczyl mi krok 1 - "obtain connection id" oraz jak odebrane dane przekonwertowac z postaci binarnej do np. tablicy. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dochodzi 3:00 więc wybacz za formę i ewentualne błędy. (IMG:style_emoticons/default/wink.gif)
Cytat Problem w tym, ze w odpowiedzi connectionId pobieram jako hex-string a nie jako int unsigned 64 bit. Mozna to zrobic inaczej, lepiej ? Upewnij się, że tekst (w formie 16-owej) ma dokładnie 16 znaków. Jeżeli ma mniej dopełnij go zerami, czyli "d50abc0bcaedf" -> "000d50abc0bcaedf". Podziel go na dwa teksty równej długości - teraz każdy reprezentuje liczbę 32-biotwą. Wykorzystując hexdec możesz zamienić to na rzeczywistą liczbę.PHP nie gwarantuje obsługi liczb 64-bitowych, więc bezpieczniej jest trzymać je jako dwie niezależne 32-bitowe zmienne. Cytat Kolejny problem - jezeli read() podaje bez dlugosci, badz z wielkoscia wieksza niz ma otrzymywany pakiet, dostaje error - timeout po 30 sekundach. Mówisz "chcę otrzymać od Ciebie 50 jabłek", więc oczywistym jest, że nie przyjdę do Ciebie mając ich tylko 40, co nie? (IMG:style_emoticons/default/smile.gif) Przede wszystkim nie powinieneś żądać więcej niż się spodziewasz - przecież masz w tej specyfikacji podane ile konkretnie bajtów zostanie przesłane.Na Twoim miejscu na początku poszukałbym / napisałbym chociażby najbardziej prymitywnej biblioteki do tworzenia "paczek" o konkretnej (binarnej) zawartości, udostępniającej jakieś sensowne API do odczytu / zapisu danych bo Cie szlag trafi z tym packiem i unpackiem. Nie mówiąc już, że podatność na błędy takiego kodu jest ogromna. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 00:39 |