Interface for qBeta module object

Origin: LIB

Socket: obj
   Socket:
      sockfd: var integer -- a file descriptor
      portno: var integer
      INVALID_SOCKET:
         out V: var integer
      hostent: -- needs to be fixed
         X: var integer
         Y: obj indexed(,integer)
            --server: = hostent
            
      socketaddr_in: -- can perhaps be handled in interpreter
         sin_family_port: var integer -- should short, ushort
         sin_addr: var integer -- struct in_addr with ulong s_addr
         sin_zero1: var integer -- char sin_zeor[8]
         sin_zero2: var integer
      serv_addr: obj socketaddr_in
      init:
         in pno: var integer
         new_socket:
            %external
            out V: var integer
      connect:
         in adr: ref string.String
         do_connect:
            %external
            in S: var integer
            in adr: ref String.string
            in portno: var integer
            out V: var integer
         V: var integer
      ioctl:
         in cmd: var integer
         out V: var integer
         do_ioctl:
            %external
            in S: var integer
            in cmd: var integer
            out res: var integer
      bind:
         do_bind:
            %external
            in S: var integer
            in port: var integer
            out V: var integer
         V: var integer
      listen:
         do_listen:
            %external
            in S: var integer
            out V: var integer
      accept: -- new Socket
         out sock: ref Socket
         do_accept:
            %external
            in S: var integer
            out V: var integer
      send:
         in msg: ref String.String
         out V: var integer
         do_send:
            %external
            in S: var integer
            in msg: ref String.string
            out V: var integer
      receive:
         out msg: ref String.String
         do_rec:
            %external
            in S: var integer
            out msg: ref String.String
      close:
         do_close:
            %external
            in S: var integer