![]() |
VOOZH | about |
dotnet add package Orion.Network.Tcp --version 0.30.1
NuGet\Install-Package Orion.Network.Tcp -Version 0.30.1
<PackageReference Include="Orion.Network.Tcp" Version="0.30.1" />
<PackageVersion Include="Orion.Network.Tcp" Version="0.30.1" />Directory.Packages.props
<PackageReference Include="Orion.Network.Tcp" />Project file
paket add Orion.Network.Tcp --version 0.30.1
#r "nuget: Orion.Network.Tcp, 0.30.1"
#:package Orion.Network.Tcp@0.30.1
#addin nuget:?package=Orion.Network.Tcp&version=0.30.1Install as a Cake Addin
#tool nuget:?package=Orion.Network.Tcp&version=0.30.1Install as a Cake Tool
👁 NuGet Version
👁 License
👁 .NET
TCP implementation for the Orion IRC Server networking layer.
IRC is not dead, long live IRC!
Orion.Network.Tcp provides a concrete TCP implementation of the network transport abstractions defined in Orion.Network.Core. This library enables Orion IRC Server to communicate with clients over standard TCP connections, with support for both secure (SSL/TLS) and non-secure channels.
dotnet add package Orion.Network.Tcp
Or using the Package Manager Console:
Install-Package Orion.Network.Tcp
The library includes several key components:
using System.Net;
using System.Security.Authentication;
using NetCoreServer;
using Orion.Core.Types;
using Orion.Network.Core.Interfaces.Services;
using Orion.Network.Tcp.Servers;
public class NetworkSetup
{
private readonly INetworkTransportManager _transportManager;
public NetworkSetup(INetworkTransportManager transportManager)
{
_transportManager = transportManager;
}
public async Task ConfigureNetworkAsync()
{
// Add a non-secure TCP server for client connections
var server = new NonSecureTcpServer(
ServerNetworkType.Clients,
IPAddress.Parse("0.0.0.0"),
6667
);
_transportManager.AddTransport(server);
// Add a secure TCP server with SSL/TLS
var certificate = X509Certificate2.CreateFromPemFile("server.crt", "server.key");
var sslContext = new SslContext(SslProtocols.Tls13, certificate);
var secureServer = new SecureTcpServer(
ServerNetworkType.Clients,
sslContext,
IPAddress.Parse("0.0.0.0"),
6697
);
_transportManager.AddTransport(secureServer);
// Start all transports
await _transportManager.StartAsync();
}
}
using System.Text;
using Orion.Network.Core.Interfaces.Services;
public class MessageSender
{
private readonly INetworkTransportManager _transportManager;
public MessageSender(INetworkTransportManager transportManager)
{
_transportManager = transportManager;
}
public async Task SendMessageAsync(string sessionId, string message)
{
byte[] data = Encoding.UTF8.GetBytes(message + "\r\n");
// Check if session exists
if (_transportManager.HasSession(sessionId))
{
// Send the message
await _transportManager.SendAsync(sessionId, data);
}
}
public async Task BroadcastAsync(string message)
{
byte[] data = Encoding.UTF8.GetBytes(message + "\r\n");
// Get all sessions and send to each
var sessions = _transportManager.GetAllSessions();
foreach (var sessionId in sessions)
{
await _transportManager.SendAsync(sessionId, data);
}
}
}
The NonSecureTcpServer class implements INetworkTransport to provide non-encrypted TCP connectivity:
public class NonSecureTcpServer : TcpServer, INetworkTransport
{
// INetworkTransport event handlers
public event INetworkTransport.ClientConnectedHandler? ClientConnected;
public event INetworkTransport.ClientDisconnectedHandler? ClientDisconnected;
public event INetworkTransport.MessageReceivedHandler? MessageReceived;
// Implementation details follow...
}
The SecureTcpServer class provides SSL/TLS-encrypted TCP connectivity:
public class SecureTcpServer : SslServer, INetworkTransport
{
// INetworkTransport event handlers
public event INetworkTransport.ClientConnectedHandler? ClientConnected;
public event INetworkTransport.ClientDisconnectedHandler? ClientDisconnected;
public event INetworkTransport.MessageReceivedHandler? MessageReceived;
// Implementation details follow...
}
This project is licensed under the MIT License - see the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.30.1 | 393 | 5/15/2025 |
| 0.30.0 | 351 | 5/13/2025 |
| 0.29.0 | 336 | 5/12/2025 |
| 0.28.4 | 309 | 5/12/2025 |
| 0.28.3 | 297 | 5/12/2025 |
| 0.28.2 | 318 | 5/12/2025 |
| 0.28.1 | 236 | 5/11/2025 |
| 0.28.0 | 163 | 5/10/2025 |
| 0.27.1 | 262 | 5/8/2025 |
| 0.27.0 | 245 | 5/8/2025 |
| 0.26.0 | 241 | 5/8/2025 |
| 0.25.2 | 235 | 5/8/2025 |
| 0.25.1 | 247 | 5/8/2025 |
| 0.25.0 | 269 | 5/8/2025 |
| 0.24.0 | 265 | 5/6/2025 |
| 0.23.0 | 253 | 5/6/2025 |
| 0.22.3 | 262 | 5/6/2025 |
| 0.22.2 | 243 | 5/5/2025 |
| 0.22.0 | 198 | 5/2/2025 |
| 0.21.0 | 221 | 5/2/2025 |