Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Komunikacja z protokolem UDP, Jak stworzyc pakiet ?
azerty
post
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 ?

  1. $transId = 1234567;
  2. $binString = pack('I@8I@12I@16', 0x41727101980, 0, $transId);
  3.  
  4. $fp = stream_socket_client($uri, $errNo, $errStr, $timeout);
  5. stream_set_timeout($fp, $timeout);
  6.  
  7. if (!$fp) {
  8. echo "ERROR: $errNo - $errStr<br />\n";
  9. }else{
  10. fwrite($fp, $binString);
  11. $r = fgets($fp, 1024);
  12. var_dump($r);
  13. echo 'ok';
  14. fclose($fp);
  15. }


Gdyby ktos byl tak mily, i wytlumaczyl mi krok 1 - "obtain connection id" oraz jak odebrane dane przekonwertowac z postaci binarnej do np. tablicy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Nie stworzysz pakietu UDP, bo w UDP nie ma pakietów. Nie nawiążesz połączenia UDP, bo w UDP nie ma połączeń.

  1. $binString = pack('N4', 0x41727, 0x101980, 0, $transId);


Zainstaluj sobie jakiś dobry kalkulator, ew. weź kartkę papieru w dłoń, zamień sobie 0x41727101980 na zapis binarny, podziel to sobie na dwie 32-bitowe połówki, każdą z nich z powrotem zamień na heksy. Gwarantuję, że nie wyjdą Ci liczby 0x41727 i 0x101980.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 13:56