Blesk
                                socket
                                  |
                            DGRAM or STREAM
                    +-------------+-------------+
                    |                           |
            no bind or bind              SERVER or CLIENT
           +--------+--------+          +-------+------+
           |                 |          |              |
   optional connect          |         bind²          bind²
      +----+----+            |          |              |
      |         |            |        listen        connect
      |      connect         |          |              |
      |         |            |        accept--+    read/write
    sendto  send/sendto      |          |     |   ((recv/send))
                             |          +-----+
                             |             |
               +-------------+         read/write
               |                      ((recv/send))
       optional connect
      +--------+--------+
      |                 |
     bind              bind
      |                 |
      |              connect
      |                 |
    sendto         send/sendto
      |                 |
recv/recvfrom     recv/recvfrom¹


¹ Volání ‹recv*› se zde chováním liší od větve, která nevolá
‹connect›. V této větvi ‹recv› a ‹recvfrom› odmítnou pakety z jiných
adres, než jaká byla předána ‹connect›.

² Ačkoliv je to typické, ruční volání ‹bind› nemusí «vždy» nutně
předcházet voláním ‹listen› nebo ‹connect› a někdy může být
vynecháno, přičemž bude následně zavoláno automaticky uvnitř daného
volání. Nicméně obvyklý způsob užití je zavolat ‹bind› explicitně
s patřičnými parametry.