next up previous contents
Next: Kapcsolat létrehozása Up: A Transport Layer Previous: Buffermanipulációs rutinok

TSAP címének kijelölése

A t_bind TLI függvénnyel lehet egy TSAP-hoz egy címet rendelni (ez a socket interfacenél megismert bind() rendszerhívás TLI megfeleloje). Ennek formája a következo:

     int ret;

     /*
      ...
      */

     ret=t_bind(tfd, addreq, addret);

Ahol addreq illetve addret paraméterek mindegyike egy t_bind struktúrára mutató pointer. A t_bind struktúra szerkezete a következo:

     struct t_bind {
          struct netbuf addr;
          unsigned int qlen;
          };

Az addreq paraméter értéke alapján a rendszer megtudja, hogy milyen TSAP-címet "javasolunk" (mit szeretnénk a létrehozott TSAP-hoz rendelni). Ha az addreq értéke egy NULL-pointer, akkor a rendszerrel azt közöljük, hogy nem érdekes, hogy milyen címet rendel a TSAP-hoz, ekkor a rendszer egy még nem foglalt címet (TCP protokoll esetén egy szabad TCP portot) rendel hozzá. Ilyenkor a qlen struktura-elem értéke 0 kell legyen.

Ha az addreq pointer nem NULL-pointer, de az addreq->addr.len egyenlo nullával, akkor szintén a transzport szoftver választ egy még szabad TSAP-címet, és azt rendeli a tfd paraméterrel azonosított TSAP-hoz. Ekkor az addreq struktura qlen komponense tetszoleges értéket kaphat.

Ha az addreq pointer nem NULL-pointer, de az addreq->addr.len nagyobb mint nulla, akkor a transzport szoftver a TSAP-hoz az addreq által kijelölt címet rendeli. Ekkor az addreq struktúra qlen komponense tetszoleges értéket kaphat.

Visszatéréskor az addret által mutatott helyen levo struktúra tartalmazza a TSAP-hoz rendelt címet - ha addret nem NULL-pointer.

A qlen komponensnek azt kell tartalmaznia (a listen() socket rendszerhívás második paraméteréhez hasonlóan), hogy a még ki nem szolgált rákapcsolódási kérelmek közül hányat kell egy várakozási sorba rakni - a többi vissza lesz utasítva. (Visszatéréskor az addret struktura qlen komponense a transzport szoftver által beállított értéket tartalmazza.)



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996