ProtonNet Server 1.0
An Open Solution for all your socket or web api needs.
Loading...
Searching...
No Matches
XmobiTea.ProtonNetServer.TcpServer Class Reference

Represents a TCP server that can handle multiple client sessions. More...

Inheritance diagram for XmobiTea.ProtonNetServer.TcpServer:
XmobiTea.ProtonNetServer.ITcpServer XmobiTea.ProtonNetServer.IServer XmobiTea.ProtonNet.Server.Socket.Server.SocketTcpServer XmobiTea.ProtonNetServer.HttpServer XmobiTea.ProtonNet.Server.WebApi.Server.WebApiHttpServer XmobiTea.ProtonNetServer.WsServer XmobiTea.ProtonNet.Server.Socket.Server.SocketWsServer

Public Member Functions

 TcpServer (string address, int port, TcpServerOptions options)
 Initializes a new instance of the TcpServer class with the specified address, port, and options.
 
virtual bool Start ()
 Starts the TCP server.
 
virtual bool Stop ()
 Stops the TCP server.
 
virtual bool Restart ()
 Restarts the TCP server.
 
virtual bool BroadcastAll (byte[] buffer)
 Broadcasts a message to all connected sessions.
 
virtual bool BroadcastAll (byte[] buffer, int position, int length)
 Broadcasts a message to all connected sessions with a specified position and length.
 
virtual bool BroadcastAllAsync (byte[] buffer)
 Broadcasts a message asynchronously to all connected sessions.
 
virtual bool BroadcastAllAsync (byte[] buffer, int position, int length)
 Broadcasts a message asynchronously to all connected sessions with a specified position and length.
 
virtual bool DisconnectAll ()
 Disconnects all connected sessions.
 
IServerNetworkStatistics GetNetworkStatistics ()
 Gets the network statistics for the server.
 
TcpSession GetSession (string id)
 Finds a session by its identifier.
 
void Dispose ()
 Disposes the server and its resources.
 
- Public Member Functions inherited from XmobiTea.ProtonNetServer.IServer

Protected Member Functions

virtual string CreateRandomId ()
 Creates a random identifier for the server.
 
virtual TcpSession CreateSession ()
 Creates a new session. Override this method to provide custom session behavior.
 
virtual void OnStarting ()
 Called when the server is starting. Override this method to add custom logic during server startup.
 
virtual void OnStarted ()
 Called after the server has started successfully. Override this method to add custom logic after server startup.
 
virtual void OnStopping ()
 Called when the server is stopping. Override this method to add custom logic during server shutdown.
 
virtual void OnStopped ()
 Called after the server has stopped successfully. Override this method to add custom logic after server shutdown.
 
virtual void OnConnecting (TcpSession session)
 Called when a session is connecting. Override this method to handle session-specific logic during the connection process.
 
virtual void OnConnected (TcpSession session)
 Called after a session has connected successfully. Override this method to handle session-specific logic after the connection process.
 
virtual void OnDisconnecting (TcpSession session)
 Called when a session is disconnecting. Override this method to handle session-specific logic during the disconnection process.
 
virtual void OnDisconnected (TcpSession session)
 Called after a session has disconnected successfully. Override this method to handle session-specific logic after the disconnection process.
 
virtual void OnError (SocketError error)
 Called when a socket error occurs. Override this method to handle errors in a custom way.
 
virtual void Dispose (bool disposingManagedResources)
 Disposes the server, optionally releasing managed resources.
 

Properties

string Id [get]
 Gets the unique identifier for the server instance.
 
string Address [get]
 Gets the server's IP address.
 
int Port [get]
 Gets the server's port number.
 
EndPoint EndPoint [get]
 Gets the server's endpoint.
 
ConcurrentDictionary< string, TcpSessionSessions [get]
 Gets the collection of active sessions.
 
int ConnectedSessions [get]
 Gets the number of connected sessions.
 
TcpServerOptions Options [get]
 Gets the TCP server options.
 
bool IsStarted [get]
 Gets a value indicating whether the server is started.
 
bool IsAccepting [get]
 Gets a value indicating whether the server is currently accepting connections.
 
bool IsDisposed [get]
 Gets a value indicating whether the server is disposed.
 
bool IsSocketDisposed [get]
 Gets a value indicating whether the server socket is disposed.
 

Detailed Description

Represents a TCP server that can handle multiple client sessions.

Constructor & Destructor Documentation

◆ TcpServer()

XmobiTea.ProtonNetServer.TcpServer.TcpServer ( string address,
int port,
TcpServerOptions options )

Initializes a new instance of the TcpServer class with the specified address, port, and options.

Parameters
addressThe server's IP address.
portThe server's port number.
optionsThe TCP server options.

Member Function Documentation

◆ BroadcastAll() [1/2]

virtual bool XmobiTea.ProtonNetServer.TcpServer.BroadcastAll ( byte[] buffer)
virtual

Broadcasts a message to all connected sessions.

Parameters
bufferThe data buffer to broadcast.
Returns
True if the message was broadcasted successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

Reimplemented in XmobiTea.ProtonNetServer.WsServer.

◆ BroadcastAll() [2/2]

virtual bool XmobiTea.ProtonNetServer.TcpServer.BroadcastAll ( byte[] buffer,
int position,
int length )
virtual

Broadcasts a message to all connected sessions with a specified position and length.

Parameters
bufferThe data buffer to broadcast.
positionThe starting position in the buffer.
lengthThe length of the data to broadcast.
Returns
True if the message was broadcasted successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

Reimplemented in XmobiTea.ProtonNetServer.WsServer.

◆ BroadcastAllAsync() [1/2]

virtual bool XmobiTea.ProtonNetServer.TcpServer.BroadcastAllAsync ( byte[] buffer)
virtual

Broadcasts a message asynchronously to all connected sessions.

Parameters
bufferThe data buffer to broadcast.
Returns
True if the message was broadcasted successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

Reimplemented in XmobiTea.ProtonNetServer.WsServer.

◆ BroadcastAllAsync() [2/2]

virtual bool XmobiTea.ProtonNetServer.TcpServer.BroadcastAllAsync ( byte[] buffer,
int position,
int length )
virtual

Broadcasts a message asynchronously to all connected sessions with a specified position and length.

Parameters
bufferThe data buffer to broadcast.
positionThe starting position in the buffer.
lengthThe length of the data to broadcast.
Returns
True if the message was broadcasted successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

Reimplemented in XmobiTea.ProtonNetServer.WsServer.

◆ CreateRandomId()

virtual string XmobiTea.ProtonNetServer.TcpServer.CreateRandomId ( )
protectedvirtual

Creates a random identifier for the server.

Returns
A random string identifier.

◆ CreateSession()

virtual TcpSession XmobiTea.ProtonNetServer.TcpServer.CreateSession ( )
protectedvirtual

◆ DisconnectAll()

virtual bool XmobiTea.ProtonNetServer.TcpServer.DisconnectAll ( )
virtual

Disconnects all connected sessions.

Returns
True if all sessions were disconnected successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

◆ Dispose()

virtual void XmobiTea.ProtonNetServer.TcpServer.Dispose ( bool disposingManagedResources)
protectedvirtual

Disposes the server, optionally releasing managed resources.

Parameters
disposingManagedResourcesTrue to release managed resources; otherwise, false.

◆ GetNetworkStatistics()

IServerNetworkStatistics XmobiTea.ProtonNetServer.TcpServer.GetNetworkStatistics ( )

Gets the network statistics for the server.

Returns
An instance of IServerNetworkStatistics representing the network statistics.

Implements XmobiTea.ProtonNetServer.IServer.

◆ GetSession()

TcpSession XmobiTea.ProtonNetServer.TcpServer.GetSession ( string id)

Finds a session by its identifier.

Parameters
idThe session identifier.
Returns
The TcpSession if found; otherwise, null.

◆ OnConnected()

virtual void XmobiTea.ProtonNetServer.TcpServer.OnConnected ( TcpSession session)
protectedvirtual

Called after a session has connected successfully. Override this method to handle session-specific logic after the connection process.

Parameters
sessionThe session that has connected.

◆ OnConnecting()

virtual void XmobiTea.ProtonNetServer.TcpServer.OnConnecting ( TcpSession session)
protectedvirtual

Called when a session is connecting. Override this method to handle session-specific logic during the connection process.

Parameters
sessionThe session that is connecting.

◆ OnDisconnected()

virtual void XmobiTea.ProtonNetServer.TcpServer.OnDisconnected ( TcpSession session)
protectedvirtual

Called after a session has disconnected successfully. Override this method to handle session-specific logic after the disconnection process.

Parameters
sessionThe session that has disconnected.

◆ OnDisconnecting()

virtual void XmobiTea.ProtonNetServer.TcpServer.OnDisconnecting ( TcpSession session)
protectedvirtual

Called when a session is disconnecting. Override this method to handle session-specific logic during the disconnection process.

Parameters
sessionThe session that is disconnecting.

◆ OnError()

virtual void XmobiTea.ProtonNetServer.TcpServer.OnError ( SocketError error)
protectedvirtual

Called when a socket error occurs. Override this method to handle errors in a custom way.

Parameters
errorThe SocketError that occurred.

◆ Restart()

virtual bool XmobiTea.ProtonNetServer.TcpServer.Restart ( )
virtual

Restarts the TCP server.

Returns
True if the server restarted successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

◆ Start()

virtual bool XmobiTea.ProtonNetServer.TcpServer.Start ( )
virtual

Starts the TCP server.

Returns
True if the server started successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.

◆ Stop()

virtual bool XmobiTea.ProtonNetServer.TcpServer.Stop ( )
virtual

Stops the TCP server.

Returns
True if the server stopped successfully; otherwise, false.

Implements XmobiTea.ProtonNetServer.IServer.


The documentation for this class was generated from the following file: