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 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%)
|
No tak. Jak Wy zaczniecie gadac, to dyskusja wedruje do nrPostu^n warstwy OSI, a nie o to pytam.
Datagramy, czy pakiety, za wiki: Cytat UDP (ang. User Datagram Protocol – protokół pakietów użytkownika) ... Pakiety UDP, zwane też datagramami ... Uznajmy to za temat zamkniety. Dalej, to co wspomnial Zyx o kalkulatorze itd. - tak, duzo literowek i bledow jest w tym poscie ale za cholere nie moge go edytowac. Do tej pory nawet odpowiedzi nie moglem napisac, bo w polu edycji bylo pelno znakow html, a przy dodawaniu postu bledy - a dokladnie ich lista ... pusta. Aktualnie mam taki kod:
Problem w tym, ze w odpowiedzi connectionId pobieram jako hex-string a nie jako int unsigned 64 bit. Mozna to zrobic inaczej, lepiej ? Kolejny problem - jezeli read() podaje bez dlugosci, badz z wielkoscia wieksza niz ma otrzymywany pakiet, dostaje error - timeout po 30 sekundach. Czy rozwiazanie tu bedzie uzycie non-blocking stream / bez buforowania ? I jeszcze raz - czy istnieje jakis ogolny sposob na pakowanie do danych binarnych liczb 64 bitowych ? Ja zrobilem to zamieniajac 1 liczbe: 0x41727101980 na 2: 0x417, 0x27101980 i po zakodowaniu parametrem N dostaje dokladnie taki ciag binarny jaki powinienem (sprawdzone bin2hex). Polaczenie inicjalizuje:
(zaraz ktos znowu przypomni, ze UDP to bezpolaczeniowy protokol ..... ) Odczyt robie tak (i tu mam problem z dlugoscia i timeoutem grr !):
isTimedOut() pobiera dane ze stream_get_metadata - tablica z polem timed_out. Nie rozumiem natomiast o co Erix'owi chodzilo w tym otwieraniu portow UDP ? Huh ? Ten post edytował azerty 4.03.2011, 01:18:28 |
|
|
|
azerty Komunikacja z protokolem UDP 2.03.2011, 16:12:40
Crozin CytatChodzi mi o to, jak mam podac dane.Struktura ... 2.03.2011, 16:37:10
azerty Dzieki, pomoglo.
Pogoooglowalem i ... :
32 bitowa... 2.03.2011, 21:22:00
Zyx Nie stworzysz pakietu UDP, bo w UDP nie ma pakietó... 3.03.2011, 16:03:06
Crozin CytatNie stworzysz pakietu UDP, bo w UDP nie ma pa... 3.03.2011, 16:12:23
erix CytatPołączeń nie ma, bo jest to protokół bezstano... 3.03.2011, 23:55:04
Crozin Dochodzi 3:00 więc wybacz za formę i ewentualne bł... 4.03.2011, 03:02:54
azerty Ok. Prawie dziala.
Odpowiedz jaka dostaje:
Cytat... 5.03.2011, 02:15:43 
kiler129 Cytat(azerty @ 5.03.2011, 02:15:43 ) ... 5.03.2011, 02:56:11 
fifi209 Cytat(kiler129 @ 5.03.2011, 02:56:11 ... 5.03.2011, 10:37:47
Crozin CytatIstnieje mozliwosc, ze to zle dzialajaca funk... 5.03.2011, 02:57:18
azerty Mi sie wydaje, ze jednak cos jest nie tak z moim p... 5.03.2011, 04:01:46 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 17:12 |