Difference between revisions of "TWSocketServer"

From Overbyte
Jump to navigation Jump to search
Line 22: Line 22:
 
| width="130" valign="top" | [[TWSocketServer.Addr | Addr]] |||| The interface to listen on.
 
| width="130" valign="top" | [[TWSocketServer.Addr | Addr]] |||| The interface to listen on.
 
|-
 
|-
| valign="top" | [[TWSocketServer.Banner | Banner]] |||| A short message line sent when client connect.
+
| valign="top" | [[TWSocketServer.Banner | Banner]] |||| A short message line sent when each client connects.
 
|-
 
|-
| valign="top" | [[TWSocketServer.BannerTooBusy | BannerTooBusy]] |||| A short message sent when client connect and number of client already exceed MaxClients limit.
+
| valign="top" | [[TWSocketServer.BannerTooBusy | BannerTooBusy]] |||| A short message sent when a client connects and the number of clients already exceeds the MaxClients limit.
 
|-
 
|-
 
| valign="top" | [[TWSocketServer.Client | Client]] |||| Indexed property giving access to all connected clients.
 
| valign="top" | [[TWSocketServer.Client | Client]] |||| Indexed property giving access to all connected clients.
 
|-
 
|-
| valign="top" | [[TWSocketServer.ClientClass | ClientClass]] |||| Class the component use to handle each incomming connection.
+
| valign="top" | [[TWSocketServer.ClientClass | ClientClass]] |||| Class the component use to handle each incoming connection.
 
|-
 
|-
 
| valign="top" | [[TWSocketServer.ClientCount | ClientCount]] |||| Number of connected clients.
 
| valign="top" | [[TWSocketServer.ClientCount | ClientCount]] |||| Number of connected clients.
Line 34: Line 34:
 
| valign="top" | [[TWSocketServer.Handle | Handle]] |||| Handle of the hidden window used for socket operation.
 
| valign="top" | [[TWSocketServer.Handle | Handle]] |||| Handle of the hidden window used for socket operation.
 
|-
 
|-
| valign="top" | [[TWSocketServer.HSocket | HSocket]] |||| Underlaying winsock socket handle.
+
| valign="top" | [[TWSocketServer.HSocket | HSocket]] |||| Underlying winsock socket handle.
 
|-
 
|-
| valign="top" | [[TWSocketServer.LastError | LastError]] |||| Last error occured.
+
| valign="top" | [[TWSocketServer.LastError | LastError]] |||| Last error which occurred.
 
|-
 
|-
 
| valign="top" | [[TWSocketServer.ListenBacklog | ListenBacklog]] |||| How many pending connection the system has to accept before denying access.
 
| valign="top" | [[TWSocketServer.ListenBacklog | ListenBacklog]] |||| How many pending connection the system has to accept before denying access.

Revision as of 21:50, 10 November 2007

Main page -> ICS component reference -> TWSocketServer

Overview

unit WSocketS.pas
inheritance TWSocket

TWSocketServer will normally be used to listen on a given TCP port. When a client connects, it will instantiate a new TWSocketClient component to handle communication with client. Normally you will derive your own component from TWSocketClient to add private data and methods to handle your processing needs. You tell TWSocketServer which component class it has to instantiate using ClientClass property. You have to initialize each instance created to handle each client from OnClientConnect event handler. TWSocketServer maintain a list of connected clients. You can access it using Client[] indexed property. ClientCount property is the size of Client[] array.

Since it is derived from TWSocket, lots of properties and events are unused and not listed here. Properties and events that have a meaning in both server or client component are listed here.

Note that TWSocketServer is only usable for incoming TCP connections. Use TWSocket if you need to use UDP.

Note: When a TWSocketClient is closed, it automatically frees itself. With a normal TWSocket, the programmer is responsible for freeing the object.

Properties

Addr The interface to listen on.
Banner A short message line sent when each client connects.
BannerTooBusy A short message sent when a client connects and the number of clients already exceeds the MaxClients limit.
Client Indexed property giving access to all connected clients.
ClientClass Class the component use to handle each incoming connection.
ClientCount Number of connected clients.
Handle Handle of the hidden window used for socket operation.
HSocket Underlying winsock socket handle.
LastError Last error which occurred.
ListenBacklog How many pending connection the system has to accept before denying access.
MaxClients Max number of connected client. All subsequent connections will be closed.
Port TCP port or service name to listen to.
PortNum Readonly property with numeric value corresponding to Port.
Proto Protocol used. Must be 'tcp'.
State Gives the state of the component.

Methods

Abort Abort current asynchronous operation.
Close Stops listening, does not disconnect connected clients.
CloseDelayed Same as Close however it's executed delayed, after current event has finished.
Create Create a new instance of the component.
Destroy Destroy the current instance.
IsClient Check if a component reference is one of the connected clients.
Listen Start accepting connections.
MessageLoop Internal message loop.
MessagePump Internal message pump.
ProcessMessage Process a single message.
ProcessMessages Process messages until message queue is empty.
Release Destroy the current instance after the current event is terminated.
ThreadAttach Detach from current thread.
ThreadDetach Attach to current thread.

Events

OnBgException When a background exception occurs.
OnChangeState When the component state change.
OnClientConnect When a new client is connecting.
OnClientCreate When a new client component instance is created.
OnClientDisconnect When a client disconnect.
OnError When an error occur. Better to use exception handling.
OnMessagePump To call your own external message pump instead of built-in one.

How to



ICS Components Reference