<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000099" bgcolor="#ffffff">
    <font face="Calibri">Dobrý den,<br>
      <br>
      mám za úkol naprogramovat UDP klienta. TCP/IP klienta jsem pomocí
      socketů naprogramoval bez problémů, ale na UDP jsem se zaseknul,
      protože mám přesně definováno, jak má vypadat paket, který
      posílám.<br>
      <br>
      Pokud bych neměl definován tvar paketu, tak bych použil <br>
      <br>
      <font face="Courier New">s = socket.socket(socket.AF_INET,
        socket.SOCK_DGRAM )<br>
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)<br>
        s.sendto(data, host, port))<br>
        <br>
        <font face="Calibri">, ale jelikož je přesně definována velikost
          a struktura paketu, tak tento způsob nemohu použít. <br>
          <br>
          Formát je definován následovně:<br>
          - 4B jsou rezervovány na identifikátor spojení<br>
          - 2B jsou rezervovány na sekvenční číslo<br>
          - 2B jsou rezervovány na číslo potvrzení<br>
          - 1B je rezervován na příznak<br>
          - 0-256B je rezervováno na data<br>
          <br>
          Abych řekl pravdu, vůbec jsem nevěděl, jak začít. Nakonec jsem
          se pokusil použít modul struct a přenáše data zabalena pomoci
          toho modulu.<br>
          <br>
          Použil jsem tedy funkci struct.pack()<br>
          <br>
          <font face="DFKai-SB">data = struct.pack("!IHHB256s", 0, 0, 0,
            1, "1")<br>
            s.sendto(data, (host, port))<br>
          </font><br>
          Jenomže tento způsob také nefunguje, protože pokud pošlu takto
          zabalenou zprávu referenčnímu serveru, tak nedostanu odpověď -
          tudíž server nepřečetl paket správně.<br>
          <br>
          Prosím Vás tedy o nějaký nápad, jak dál postupovat a jestli je
          např. použití modulu struct vhodné.<br>
          <br>
          Děkuji za každou radu<br>
          <br>
          Jakub<br>
        </font></font></font>
  </body>
</html>