|   | Tcp | 
 Inheritance Hierarchy
Inheritance Hierarchy
         Syntax
Syntaxpublic class TcpServer : ServerBase
The TcpServer type exposes the following members.
 Constructors
Constructors| Name | Description | |
|---|---|---|
|  | TcpServer | Initializes a new instance of the TcpServer class. | 
|  | TcpServer(IContainer) | Initializes a new instance of the TcpServer class. | 
|  | TcpServer(String) | Initializes a new instance of the TcpServer class. | 
 Properties
Properties| Name | Description | |
|---|---|---|
|  | AllowDualStackSocket | Gets or sets a boolean value that determines if dual-mode socket is allowed when endpoint address is IPv6. | 
|  | CanRaiseEvents | Gets a value indicating whether the component can raise an event. (Inherited from Component) | 
|  | ClientIDs | Gets the IDs of clients connected to the server. (Inherited from ServerBase) | 
|  | ConfigurationString | Gets or sets the data required by the server to initialize. (Inherited from ServerBase) | 
|  | Container | Gets the IContainer that contains the Component. (Inherited from Component) | 
|  | CurrentState | Gets the current ServerState. (Inherited from ServerBase) | 
|  | DesignMode | Gets a value that indicates whether the Component is currently in design mode. (Inherited from Component) | 
|  | Enabled | Gets or sets a boolean value that indicates whether the server is currently enabled. (Inherited from ServerBase) | 
|  | Events | Gets the list of event handlers that are attached to this Component. (Inherited from Component) | 
|  | IgnoreInvalidCredentials | Gets or sets a boolean value that indicates whether the server should ignore errors when the client's credentials are invalid. | 
|  | Initialized | Gets a boolean value that indicates
            whether the server has been initialized. (Inherited from ServerBase) | 
|  | IntegratedSecurity | Gets or sets a boolean value that indicates whether the client Windows account credentials are used for authentication. | 
|  | IsDisposed | Gets a flag that indicates whether the object has been disposed. (Inherited from ServerBase) | 
|  | MaxClientConnections | Gets or sets the maximum number of clients that can connect to the server. (Inherited from ServerBase) | 
|  | MaxSendQueueSize | Gets or sets the maximum size for the send queue before payloads are dumped from the queue. | 
|  | Name | Gets the unique identifier of the server. (Inherited from ServerBase) | 
|  | NoDelay | Gets or sets a boolean value that determines if small packets are delivered to the remote host without delay. | 
|  | PayloadAware | Gets or sets a boolean value that indicates whether the payload boundaries are to be preserved during transmission. | 
|  | PayloadEndianOrder | Gets or sets the endian order to apply for encoding and decoding payload size in a PayloadAware transmission. | 
|  | PayloadMarker | Gets or sets the byte sequence used to mark the beginning of a payload in a PayloadAware transmission. | 
|  | PersistSettings | Gets or sets a boolean value that indicates whether the server settings are to be saved to the config file. (Inherited from ServerBase) | 
|  | ReadIndicies | Gets current read indices for received data buffers incremented at each Read(Guid, Byte, Int32, Int32) call. (Inherited from ServerBase) | 
|  | ReceiveBufferSize | Gets or sets the size of the buffer used by the server for receiving data from the clients. (Inherited from ServerBase) | 
|  | RunTime | Gets the Time for which the server has been running. (Inherited from ServerBase) | 
|  | SendBufferSize | Gets or sets the size of the buffer used by the server for sending data to the clients. (Inherited from ServerBase) | 
|  | Server | Gets the Socket object for the TcpServer. | 
|  | ServerID | Gets the server's ID. (Inherited from ServerBase) | 
|  | SettingsCategory | Gets or sets the category under which the server settings are to be saved to the config file if the PersistSettings property is set to true. (Inherited from ServerBase) | 
|  | Site | Gets or sets the ISite of the Component. (Inherited from Component) | 
|  | Status | Gets the descriptive status of the server. (Overrides ServerBaseStatus) | 
|  | TextEncoding | Gets or sets the Encoding to be used for the text sent to the connected clients. (Inherited from ServerBase) | 
|  | TransportProtocol | Gets the TransportProtocol used by the server for the transportation of data with the clients. (Inherited from ServerBase) | 
 Methods
Methods| Name | Description | |
|---|---|---|
|  | BeginInit | Performs necessary operations before the server properties are initialized. (Inherited from ServerBase) | 
|  | CreateObjRef | Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject) | 
|  | DisconnectAll | Disconnects all of the connected clients. (Inherited from ServerBase) | 
|  | DisconnectOne | Disconnects the specified connected client. (Overrides ServerBaseDisconnectOne(Guid)) | 
|  | Dispose | Releases all resources used by the Component. (Inherited from Component) | 
|  | Dispose(Boolean) | Releases the unmanaged resources used by the server and optionally releases the managed resources. (Inherited from ServerBase) | 
|  | EndInit | Performs necessary operations after the server properties are initialized. (Inherited from ServerBase) | 
|  | Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) | 
|  | Finalize | Releases unmanaged resources and performs other cleanup operations before the Component is reclaimed by garbage collection. (Inherited from Component) | 
|  | GetHashCode | Serves as the default hash function. (Inherited from Object) | 
|  | GetLifetimeService | Retrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject) | 
|  | GetService | Returns an object that represents a service provided by the Component or by its Container. (Inherited from Component) | 
|  | GetType | Gets the Type of the current instance. (Inherited from Object) | 
|  | Initialize | Initializes the server. (Inherited from ServerBase) | 
|  | InitializeLifetimeService | Obtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject) | 
|  | IsClientConnected | Determines whether the given client is currently connected to the server. (Inherited from ServerBase) | 
|  | LoadSettings | Loads saved TcpServer settings from the config file if the PersistSettings property is set to true. (Overrides ServerBaseLoadSettings) | 
|  | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object) | 
|  | MemberwiseClone(Boolean) | Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject) | 
|  | Multicast(Byte) | Sends data to all of the connected clients synchronously. (Inherited from ServerBase) | 
|  | Multicast(Object) | Sends data to all of the connected clients synchronously. (Inherited from ServerBase) | 
|  | Multicast(String) | Sends data to all of the connected clients synchronously. (Inherited from ServerBase) | 
|  | Multicast(Byte, Int32, Int32) | Sends data to all of the connected clients synchronously. (Inherited from ServerBase) | 
|  | MulticastAsync(Byte) | Sends data to all of the connected clients asynchronously. (Inherited from ServerBase) | 
|  | MulticastAsync(Object) | Sends data to all of the connected clients asynchronously. (Inherited from ServerBase) | 
|  | MulticastAsync(String) | Sends data to all of the connected clients asynchronously. (Inherited from ServerBase) | 
|  | MulticastAsync(Byte, Int32, Int32) | Sends data to all of the connected clients asynchronously. (Inherited from ServerBase) | 
|  | OnClientConnected | Raises the ClientConnected event. (Inherited from ServerBase) | 
|  | OnClientConnectingException | Raises the ClientConnectingException event. (Inherited from ServerBase) | 
|  | OnClientDisconnected | Raises the ClientDisconnected event. (Inherited from ServerBase) | 
|  | OnReceiveClientData | Raises the ReceiveClientData event. (Inherited from ServerBase) | 
|  | OnReceiveClientDataComplete | Raises the ReceiveClientDataComplete event. (Inherited from ServerBase) | 
|  | OnReceiveClientDataException(Guid, Exception) | Raises the ReceiveClientDataException event. (Overrides ServerBaseOnReceiveClientDataException(Guid, Exception)) | 
|  | OnReceiveClientDataException(Guid, SocketException) | Raises the ReceiveClientDataException event. | 
|  | OnSendClientDataComplete | Raises the SendClientDataComplete event. (Inherited from ServerBase) | 
|  | OnSendClientDataException | Raises the SendClientDataException event. (Overrides ServerBaseOnSendClientDataException(Guid, Exception)) | 
|  | OnSendClientDataStart | Raises the SendClientDataStart event. (Inherited from ServerBase) | 
|  | OnServerStarted | Raises the ServerStarted event. (Inherited from ServerBase) | 
|  | OnServerStopped | Raises the ServerStopped event. (Inherited from ServerBase) | 
|  | OnUnhandledUserException | Raises the UnhandledUserException event. (Inherited from ServerBase) | 
|  | Read | Reads a number of bytes from the current received data buffer and writes those bytes into a byte array at the specified offset. (Overrides ServerBaseRead(Guid, Byte, Int32, Int32)) | 
|  | ReStart | Re-starts the server if currently running. (Inherited from ServerBase) | 
|  | SaveSettings | Saves TcpServer settings to the config file if the PersistSettings property is set to true. (Overrides ServerBaseSaveSettings) | 
|  | SendDataToAsync | Sends data to the specified client asynchronously. (Overrides ServerBaseSendDataToAsync(Guid, Byte, Int32, Int32)) | 
|  | SendTo(Guid, Byte) | Sends data to the specified client synchronously. (Inherited from ServerBase) | 
|  | SendTo(Guid, Object) | Sends data to the specified client synchronously. (Inherited from ServerBase) | 
|  | SendTo(Guid, String) | Sends data to the specified client synchronously. (Inherited from ServerBase) | 
|  | SendTo(Guid, Byte, Int32, Int32) | Sends data to the specified client synchronously. (Inherited from ServerBase) | 
|  | SendToAsync(Guid, Byte) | Sends data to the specified client asynchronously. (Inherited from ServerBase) | 
|  | SendToAsync(Guid, Object) | Sends data to the specified client asynchronously. (Inherited from ServerBase) | 
|  | SendToAsync(Guid, String) | Sends data to the specified client asynchronously. (Inherited from ServerBase) | 
|  | SendToAsync(Guid, Byte, Int32, Int32) | Sends data to the specified client asynchronously. (Inherited from ServerBase) | 
|  | Start | Starts the TcpServer synchronously and begins accepting client connections asynchronously. (Overrides ServerBaseStart) | 
|  | Stop | Stops the TcpServer synchronously and disconnects all connected clients. (Overrides ServerBaseStop) | 
|  | ToString | Returns a String containing the name of the Component, if any. This method should not be overridden. (Inherited from Component) | 
|  | TryGetClient | Gets the TransportProviderT object associated with the specified client ID. | 
|  | TryGetClientPrincipal | Gets the WindowsPrincipal object associated with the specified client ID. | 
|  | ValidateConfigurationString | Validates the specified configurationString. (Overrides ServerBaseValidateConfigurationString(String)) | 
 Events
Events| Name | Description | |
|---|---|---|
|  | ClientConnected | Occurs when a client connects to the server. (Inherited from ServerBase) | 
|  | ClientConnectingException | Occurs when an exception is encountered while a client is connecting. (Inherited from ServerBase) | 
|  | ClientDisconnected | Occurs when a client disconnects from the server. (Inherited from ServerBase) | 
|  | Disposed | Occurs when the component is disposed by a call to the Dispose method. (Inherited from Component) | 
|  | ReceiveClientData | Occurs when unprocessed data has been received from a client. (Inherited from ServerBase) | 
|  | ReceiveClientDataComplete | Occurs when data received from a client has been processed and is ready for consumption. (Inherited from ServerBase) | 
|  | ReceiveClientDataException | Occurs when an Exception is encountered when receiving data from a client. (Inherited from ServerBase) | 
|  | SendClientDataComplete | Occurs when data has been sent to a client. (Inherited from ServerBase) | 
|  | SendClientDataException | Occurs when an Exception is encountered when sending data to a client. (Inherited from ServerBase) | 
|  | SendClientDataStart | Occurs when data is being sent to a client. (Inherited from ServerBase) | 
|  | ServerStarted | Occurs when the server is started. (Inherited from ServerBase) | 
|  | ServerStopped | Occurs when the server is stopped. (Inherited from ServerBase) | 
|  | UnhandledUserException | Occurs when an Exception is encountered in a user-defined function via an event dispatch. (Inherited from ServerBase) | 
 Fields
Fields| Name | Description | |
|---|---|---|
|   | DefaultAllowDualStackSocket | Specifies the default value for the AllowDualStackSocket property. | 
|   | DefaultConfigurationString | Specifies the default value for the ConfigurationString property. | 
|   | DefaultIgnoreInvalidCredentials | Specifies the default value for the IgnoreInvalidCredentials property. | 
|   | DefaultIntegratedSecurity | Specifies the default value for the IntegratedSecurity property. | 
|   | DefaultMaxSendQueueSize | Specifies the default value for the MaxSendQueueSize property. | 
|   | DefaultNoDelay | Specifies the default value for the NoDelay property. | 
|   | DefaultPayloadAware | Specifies the default value for the PayloadAware property. | 
 Extension Methods
Extension Methods| Name | Description | |
|---|---|---|
|  | GetEnumValueOrDefault | Gets the enumeration constant for value, if defined in the enumeration, or a default value. (Defined by EnumExtensions) | 
|  | GetEnumValueOrDefaultT | Gets the enumeration constant for this value, if defined in the enumeration, or a default value. (Defined by EnumExtensions) | 
 Remarks
Remarks Example
Exampleusing System; using GSF; using GSF.Communication; using GSF.Security.Cryptography; using GSF.IO.Compression; class Program { static TcpServer m_server; static void Main(string[] args) { // Initialize the server. m_server = new TcpServer("Port=8888"); m_server.Handshake = false; m_server.PayloadAware = false; m_server.ReceiveTimeout = -1; m_server.Encryption = CipherStrength.None; m_server.Compression = CompressionStrength.NoCompression; m_server.SecureSession = false; m_server.Initialize(); // Register event handlers. m_server.ServerStarted += m_server_ServerStarted; m_server.ServerStopped += m_server_ServerStopped; m_server.ClientConnected += m_server_ClientConnected; m_server.ClientDisconnected += m_server_ClientDisconnected; m_server.ReceiveClientDataComplete += m_server_ReceiveClientDataComplete; // Start the server. m_server.Start(); // Multicast user input to all connected clients. string input; while (string.Compare(input = Console.ReadLine(), "Exit", true) != 0) { m_server.Multicast(input); } // Stop the server on shutdown. m_server.Stop(); } static void m_server_ServerStarted(object sender, EventArgs e) { Console.WriteLine("Server has been started!"); } static void m_server_ServerStopped(object sender, EventArgs e) { Console.WriteLine("Server has been stopped!"); } static void m_server_ClientConnected(object sender, EventArgs<Guid> e) { Console.WriteLine(string.Format("Client connected - {0}.", e.Argument)); } static void m_server_ClientDisconnected(object sender, EventArgs<Guid> e) { Console.WriteLine(string.Format("Client disconnected - {0}.", e.Argument)); } static void m_server_ReceiveClientDataComplete(object sender, EventArgs<Guid, byte[], int> e) { Console.WriteLine(string.Format("Received data from {0} - {1}.", e.Argument1, m_server.TextEncoding.GetString(e.Argument2, 0, e.Argument3))); } }
 See Also
See Also