| Description | Hierarchy | Fields | Methods | Properties | 
type unavclIPServer = class(unavclInOutIpPipe)
IP Server: initiates listening socket for clients to connect to. Receives and sends audio stream to/from client.
Usage: set proto and port properties to specify the socket parameters. Set active to true or call the open() method to initiate the server.
Example: refer to vcTalkNow demo, with ip_server it is possible to accept client connections, receive compressed audio stream and send audio stream over network.
![]()  | 
function getClientConnId(clientIndex: int): tConID; | 
![]()  | 
function getClientOptions(clientIndex: int): uint; | 
![]()  | 
function doSendPacket(connId: tConID; cmd: uint; out asynch: bool; data: pointer = nil; len: uint = 0; timeout: tTimeout = 82): tunaSendResult; override; | 
![]()  | 
function doWrite(data: pointer; len: uint; provider: pointer = nil): uint; override; | 
![]()  | 
function handleSocketEvent(event: unaSocketEvent; id, connId: tConID; data: pointer; len: uint): bool; override; | 
![]()  | 
function initSocksThread(): tConID; override; | 
![]()  | 
function onNewPacket(cmd: uint; data: pointer; len: uint; connId: tConID; worker: uint): bool; override; | 
![]()  | 
procedure AfterConstruction(); override; | 
![]()  | 
procedure BeforeDestruction(); override; | 
![]()  | 
procedure setClientOptions(clientIndex: int; options: uint = c_unaIPServer_co_default); | 
![]()  | 
procedure addDeadSocket(connId: tConID); | 
![]()  | 
procedure doAcceptClient(connId: tConID; var accept: bool); virtual; | 
![]()  | 
procedure doClose(); override; | 
![]()  | 
procedure doServerClientConnection(connId: tConID; isConnected: bool); virtual; | 
![]()  | 
procedure sendGoodbye(connId: tConID); override; | 
![]()  | 
property clientCount: unsigned read getClientCount; | 
![]()  | 
property clientOptions[clientIndex:int]: uint read getClientOptions write setClientOptions; | 
![]()  | 
property confMode: unaIpServerConferenceMode read f_confMode write f_confMode default uipscm_oneToMany; | 
![]()  | 
property isFormatProvider default true; | 
![]()  | 
property maxClients: int read f_maxClients write setMaxClients default 1; | 
![]()  | 
property onAcceptClient: tunavclAcceptClient read f_onAcceptClient write f_onAcceptClient; | 
![]()  | 
property onServerClientDisconnect: tunavclConnectEvent read f_onServerClientDisconnect write f_onServerClientDisconnect; | 
![]()  | 
property onServerNewClient: tunavclConnectEvent read f_onServerNewClient write f_onServerNewClient; | 
![]()  | 
property packetStackThreadEnabled: bool read f_psEnabled write f_psEnabled; | 
![]()  | 
property udpTimeout: tTimeout read f_udpTimeout write f_udpTimeout default c_defUdpConnTimeout; | 
![]()  | 
function getClientConnId(clientIndex: int): tConID; | 
| 
 Returns connId for client connection with given index. Parameters
  | |
![]()  | 
function getClientOptions(clientIndex: int): uint; | 
| 
 Returns flags assigned for a client. Parameters
  | |
![]()  | 
function doSendPacket(connId: tConID; cmd: uint; out asynch: bool; data: pointer = nil; len: uint = 0; timeout: tTimeout = 82): tunaSendResult; override; | 
| 
 Sends a packet to specified client.  | |
![]()  | 
function doWrite(data: pointer; len: uint; provider: pointer = nil): uint; override; | 
| 
 Writes data into the TCP/IP stream to be sent to client(s).  | |
![]()  | 
function handleSocketEvent(event: unaSocketEvent; id, connId: tConID; data: pointer; len: uint): bool; override; | 
| 
 Handles specific events reveived from server component.  | |
![]()  | 
function initSocksThread(): tConID; override; | 
| 
 Initializates sockets thread to be used with server.  | |
![]()  | 
function onNewPacket(cmd: uint; data: pointer; len: uint; connId: tConID; worker: uint): bool; override; | 
| 
 Handles "hello" and "bye" commands.  | |
![]()  | 
procedure AfterConstruction(); override; | 
| 
 Initializates server component.  | |
![]()  | 
procedure BeforeDestruction(); override; | 
| 
 Destroys internal objects.  | |
![]()  | 
procedure setClientOptions(clientIndex: int; options: uint = c_unaIPServer_co_default); | 
| 
 Sets new flags for a client. Parameters
  | |
![]()  | 
procedure addDeadSocket(connId: tConID); | 
| 
 Marks specified connection as "dead", so server will no longer attempt to communicate over it. Parameters
  | |
![]()  | 
procedure doAcceptClient(connId: tConID; var accept: bool); virtual; | 
| 
 Fires onAcceptClient event handler (if assigned).  | |
![]()  | 
procedure doClose(); override; | 
| 
 Closes the IP server.  | |
![]()  | 
procedure doServerClientConnection(connId: tConID; isConnected: bool); virtual; | 
| 
 Fires onServerNewClient or onServerClientDisconnect event handlers (if assigned).  | |
![]()  | 
procedure sendGoodbye(connId: tConID); override; | 
| 
 Sends goodbye command to all active clients.  | |
![]()  | 
property clientCount: unsigned read getClientCount; | 
| 
 Number of clients currently connected to server.  | |
![]()  | 
property clientOptions[clientIndex:int]: uint read getClientOptions write setClientOptions; | 
| 
 Client options. @param clientIndex Index of client connection (from 0 to clientCount - 1).  | |
![]()  | 
property confMode: unaIpServerConferenceMode read f_confMode write f_confMode default uipscm_oneToMany; | 
| 
 Conference mode (not used).  | |
![]()  | 
property isFormatProvider default true; | 
| 
 IP server is usually a format provider - so this property value was changed to be true by default.  | |
![]()  | 
property maxClients: int read f_maxClients write setMaxClients default 1; | 
| 
 Max. number of clients allowed. Specify -1 for unlimited number.  | |
![]()  | 
property onAcceptClient: tunavclAcceptClient read f_onAcceptClient write f_onAcceptClient; | 
| 
 Fired when new client is connected. Leave accept true for client to be connected.  | |
![]()  | 
property onServerClientDisconnect: tunavclConnectEvent read f_onServerClientDisconnect write f_onServerClientDisconnect; | 
| 
 Triggers when client is disconnected from the server. NOTE: VCL is NOT multi-threading safe, and you should avoid using VCL routines and classes in this event.  | |
![]()  | 
property onServerNewClient: tunavclConnectEvent read f_onServerNewClient write f_onServerNewClient; | 
| 
 Triggers when new client is connected to the server. NOTE: VCL is NOT multi-threading safe, and you should avoid using VCL routines and classes in this event.  | |
![]()  | 
property packetStackThreadEnabled: bool read f_psEnabled write f_psEnabled; | 
| 
 Enable internal thread for packets' processing. Default is False.  | |
![]()  | 
property udpTimeout: tTimeout read f_udpTimeout write f_udpTimeout default c_defUdpConnTimeout; | 
| 
 Timeout for clients "connected" to UDP server. 0 means no timeout.  | |
(c) 2012 Lake of Soft