Przykład Supersocket C# (jak to działa dla programistów)
Tworzenie aplikacji serwerowej socket przy użyciu SuperSocket i integracja z IronPDF
SuperSocket C# to doskonałe narzędzie do tworzenia aplikacji serwerowych socket, niezależnie od tego, czy pracujesz nad serwerem GPS, czy systemem sterowania przemysłowego. Obsługuje różne implementacje protokołów sieciowych i zapewnia, że Twój socket działa wydajnie. Jest to lekki, wieloplatformowy framework, który został zaprojektowany, aby być rozbudowanym, zapewniając elastyczność dla różnych środowisk. Za pomocą SuperSocket możesz łatwo przesyłać dane między klientami a serwerami, a jego kod źródłowy jest dostępny do dostosowania do określonych wymagań projektu.
Jest to framework open-source, więc każdy programista może go zaimplementować i uzyskać do niego dostęp przez GitHub.

IronPDF to potężna biblioteka .NET do tworzenia, edytowania i wyodrębniania treści z dokumentów PDF. Jest przeznaczona dla programistów, którzy potrzebują zintegrować funkcjonalność PDF w swoich aplikacjach. IronPDF obsługuje różne funkcje, takie jak generowanie PDF z HTML, scalanie PDF i wyodrębnianie tekstu i obrazów z PDF.
SuperSocket i IronPDF razem mogą zasilać złożone aplikacje serwerowe. Oferują szeroką gamę funkcji, aby sprostać potrzebom współczesnych programistów .NET. Te biblioteki są idealne zarówno do budowy serwera akwizycji danych, jak i solidnego serwera gier, gdzie aplikacje czatu w czasie rzeczywistym są koniecznością.
Getting Started with SuperSocket C
Konfiguracja SuperSocket C# w projektach .NET
Aby zacząć korzystać z SuperSocket C#, musisz skonfigurować swój projekt .NET. Najpierw zainstaluj pakiet SuperSocket NuGet. Otwórz swój projekt w Visual Studio i wykonaj następujące polecenie w konsoli Menedżera Pakietów:
Install-Package SuperSocket

Po zainstalowaniu możesz skonfigurować instancję serwera. Utwórz nowy plik konfiguracyjny o nazwie appsettings.json. Ten plik zdefiniuje ustawienia serwera, w tym słuchaczy i protokoły.
{
"serverOptions": {
"name": "SuperSocketServer",
"listeners": [
{
"ip": "Any",
"port": 4040
}
]
}
}
Następnie utwórz klasę do konfiguracji serwera. Ta klasa będzie odczytywać ustawienia z appsettings.json i inicjalizować instancję serwera.
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class ServerConfig
{
public async Task Configure()
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<YourSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class ServerConfig
{
public async Task Configure()
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<YourSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
Imports Microsoft.Extensions.Configuration
Imports SuperSocket
Imports SuperSocket.Server
Public Class ServerConfig
Public Async Function Configure() As Task
Dim host = SuperSocketHostBuilder.Create().UseTcpServer().UseSession(Of YourSession)().ConfigureAppConfiguration(Sub(hostCtx, configApp)
configApp.AddJsonFile("appsettings.json", [optional]:= False, reloadOnChange:= True)
End Sub).Build()
Await host.RunAsync()
End Function
End Class
Podstawowy przykład SuperSocket C
Spójrzmy na podstawowy przykład aplikacji SuperSocket C#. Ten przykład pokazuje, jak stworzyć prosty serwer echo, który odsyła dowolne odebrane dane.
Najpierw zdefiniuj klasę sesji. Ta klasa będzie obsługiwać połączenia socket i zarządzać komunikacją danych.
using SuperSocket;
public class EchoSession : AppSession
{
protected override async ValueTask OnSessionStartedAsync()
{
await base.OnSessionStartedAsync();
Console.WriteLine("New session started.");
}
protected override async ValueTask OnSessionClosedAsync(CloseEventArgs e)
{
await base.OnSessionClosedAsync(e);
Console.WriteLine("Session closed.");
}
protected override async ValueTask OnPackageReceivedAsync(ReadOnlyMemory<byte> package)
{
await SendAsync(package);
}
}
using SuperSocket;
public class EchoSession : AppSession
{
protected override async ValueTask OnSessionStartedAsync()
{
await base.OnSessionStartedAsync();
Console.WriteLine("New session started.");
}
protected override async ValueTask OnSessionClosedAsync(CloseEventArgs e)
{
await base.OnSessionClosedAsync(e);
Console.WriteLine("Session closed.");
}
protected override async ValueTask OnPackageReceivedAsync(ReadOnlyMemory<byte> package)
{
await SendAsync(package);
}
}
Imports SuperSocket
Public Class EchoSession
Inherits AppSession
Protected Overrides Async Function OnSessionStartedAsync() As ValueTask
Await MyBase.OnSessionStartedAsync()
Console.WriteLine("New session started.")
End Function
Protected Overrides Async Function OnSessionClosedAsync(ByVal e As CloseEventArgs) As ValueTask
Await MyBase.OnSessionClosedAsync(e)
Console.WriteLine("Session closed.")
End Function
Protected Overrides Async Function OnPackageReceivedAsync(ByVal package As ReadOnlyMemory(Of Byte)) As ValueTask
Await SendAsync(package)
End Function
End Class
Następnie skonfiguruj i uruchom serwer z sesją echo.
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class EchoServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<EchoSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class EchoServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<EchoSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
Imports Microsoft.Extensions.Configuration
Imports SuperSocket
Imports SuperSocket.Server
Public Class EchoServer
Public Shared Async Function Main(ByVal args() As String) As Task
Dim host = SuperSocketHostBuilder.Create().UseTcpServer().UseSession(Of EchoSession)().ConfigureAppConfiguration(Sub(hostCtx, configApp)
configApp.AddJsonFile("appsettings.json", [optional]:= False, reloadOnChange:= True)
End Sub).Build()
Await host.RunAsync()
End Function
End Class
Ten przykład pokazuje, jak stworzyć prosty serwer echo przy użyciu SuperSocket C#. Serwer nasłuchuje połączeń i odsyła każde otrzymane dane.
Implementing Features of SuperSocket C
Obsługa wielu słuchaczy
SuperSocket C# obsługuje wielu słuchaczy, pozwalając Twojemu serwerowi obsługiwać różne protokoły i porty. Ta funkcja jest przydatna przy tworzeniu wszechstronnych aplikacji, takich jak serwery akwizycji danych i serwery GPS.
Najpierw zaktualizuj swój appsettings.json, aby uwzględniał wielu słuchaczy:
{
"serverOptions": {
"name": "MultiListenerServer",
"listeners": [
{
"ip": "Any",
"port": 4040
},
{
"ip": "Any",
"port": 5050
}
]
}
}
Następnie skonfiguruj serwer do użycia tych słuchaczy:
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class MultiListenerServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<YourSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class MultiListenerServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<YourSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
Imports Microsoft.Extensions.Configuration
Imports SuperSocket
Imports SuperSocket.Server
Public Class MultiListenerServer
Public Shared Async Function Main(ByVal args() As String) As Task
Dim host = SuperSocketHostBuilder.Create().UseTcpServer().UseSession(Of YourSession)().ConfigureAppConfiguration(Sub(hostCtx, configApp)
configApp.AddJsonFile("appsettings.json", [optional]:= False, reloadOnChange:= True)
End Sub).Build()
Await host.RunAsync()
End Function
End Class
Dzięki tej konfiguracji Twój serwer może obsługiwać połączenia na obu portach 4040 i 5050. Ta zdolność jest kluczowa dla aplikacji, które muszą zarządzać różnymi protokołami sieciowymi.
Implementacja obsługi danych binarnych
SuperSocket C# jest efektywny w obsłudze danych binarnych. To ważne dla aplikacji, które wymagają zgodności na poziomie binarnym, takich jak systemy sterowania przemysłowego.
Najpierw zdefiniuj klasę sesji, która przetwarza dane binarne:
using System;
using SuperSocket;
public class BinaryDataSession : AppSession
{
protected override async ValueTask OnPackageReceivedAsync(ReadOnlyMemory<byte> package)
{
var data = package.ToArray();
Console.WriteLine("Received binary data: " + BitConverter.ToString(data));
await SendAsync(data);
}
}
using System;
using SuperSocket;
public class BinaryDataSession : AppSession
{
protected override async ValueTask OnPackageReceivedAsync(ReadOnlyMemory<byte> package)
{
var data = package.ToArray();
Console.WriteLine("Received binary data: " + BitConverter.ToString(data));
await SendAsync(data);
}
}
Imports System
Imports SuperSocket
Public Class BinaryDataSession
Inherits AppSession
Protected Overrides Async Function OnPackageReceivedAsync(ByVal package As ReadOnlyMemory(Of Byte)) As ValueTask
Dim data = package.ToArray()
Console.WriteLine("Received binary data: " & BitConverter.ToString(data))
Await SendAsync(data)
End Function
End Class
Następnie skonfiguruj i uruchom serwer z sesją danych binarnych:
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class BinaryDataServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<BinaryDataSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class BinaryDataServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<BinaryDataSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
Imports Microsoft.Extensions.Configuration
Imports SuperSocket
Imports SuperSocket.Server
Public Class BinaryDataServer
Public Shared Async Function Main(ByVal args() As String) As Task
Dim host = SuperSocketHostBuilder.Create().UseTcpServer().UseSession(Of BinaryDataSession)().ConfigureAppConfiguration(Sub(hostCtx, configApp)
configApp.AddJsonFile("appsettings.json", [optional]:= False, reloadOnChange:= True)
End Sub).Build()
Await host.RunAsync()
End Function
End Class
Ten przykład pokazuje, jak odbierać i wysyłać dane binarne przy użyciu SuperSocket C#. Jest to przydatne dla aplikacji wysokowydajnościowych, które muszą przetwarzać protokoły binarne.
Zarządzanie połączeniami socket
Utrzymanie połączeń socket jest niezbędne do zapewnienia niezawodnej komunikacji. SuperSocket C# upraszcza ten proces.
Najpierw zdefiniuj klasę sesji, która zarządza połączeniami socket:
using SuperSocket;
public class ConnectionSession : AppSession
{
protected override async ValueTask OnSessionStartedAsync()
{
await base.OnSessionStartedAsync();
Console.WriteLine("Connection started.");
}
protected override async ValueTask OnSessionClosedAsync(CloseEventArgs e)
{
await base.OnSessionClosedAsync(e);
Console.WriteLine("Connection closed.");
}
protected override async ValueTask OnPackageReceivedAsync(ReadOnlyMemory<byte> package)
{
await SendAsync(package);
}
}
using SuperSocket;
public class ConnectionSession : AppSession
{
protected override async ValueTask OnSessionStartedAsync()
{
await base.OnSessionStartedAsync();
Console.WriteLine("Connection started.");
}
protected override async ValueTask OnSessionClosedAsync(CloseEventArgs e)
{
await base.OnSessionClosedAsync(e);
Console.WriteLine("Connection closed.");
}
protected override async ValueTask OnPackageReceivedAsync(ReadOnlyMemory<byte> package)
{
await SendAsync(package);
}
}
Imports SuperSocket
Public Class ConnectionSession
Inherits AppSession
Protected Overrides Async Function OnSessionStartedAsync() As ValueTask
Await MyBase.OnSessionStartedAsync()
Console.WriteLine("Connection started.")
End Function
Protected Overrides Async Function OnSessionClosedAsync(ByVal e As CloseEventArgs) As ValueTask
Await MyBase.OnSessionClosedAsync(e)
Console.WriteLine("Connection closed.")
End Function
Protected Overrides Async Function OnPackageReceivedAsync(ByVal package As ReadOnlyMemory(Of Byte)) As ValueTask
Await SendAsync(package)
End Function
End Class
Następnie skonfiguruj i uruchom serwer z sesją połączeń:
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class ConnectionServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<ConnectionSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Server;
public class ConnectionServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<ConnectionSession>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
Imports Microsoft.Extensions.Configuration
Imports SuperSocket
Imports SuperSocket.Server
Public Class ConnectionServer
Public Shared Async Function Main(ByVal args() As String) As Task
Dim host = SuperSocketHostBuilder.Create().UseTcpServer().UseSession(Of ConnectionSession)().ConfigureAppConfiguration(Sub(hostCtx, configApp)
configApp.AddJsonFile("appsettings.json", [optional]:= False, reloadOnChange:= True)
End Sub).Build()
Await host.RunAsync()
End Function
End Class
Ta konfiguracja pomaga zarządzać połączeniami socket, zapewniając, że Twój serwer pozostaje robustny i niezawodny.
Tworzenie serwera wiersza poleceń
SuperSocket C# obsługuje tworzenie serwerów wiersza poleceń. Ta funkcja jest przydatna dla aplikacji, które wymagają prostych protokołów tekstowych.
Najpierw zdefiniuj klasę poleceń, która przetwarza polecenia tekstowe:
using System.Text;
using System.Threading.Tasks;
using SuperSocket.Command;
using SuperSocket.ProtoBase;
public class MyCommand : IAsyncCommand<AppSession, StringPackageInfo>
{
public async ValueTask ExecuteAsync(AppSession session, StringPackageInfo package)
{
var commandKey = package.Key;
var parameters = package.Parameters;
await session.SendAsync(Encoding.UTF8.GetBytes($"You said: {string.Join(' ', parameters)}"));
}
}
using System.Text;
using System.Threading.Tasks;
using SuperSocket.Command;
using SuperSocket.ProtoBase;
public class MyCommand : IAsyncCommand<AppSession, StringPackageInfo>
{
public async ValueTask ExecuteAsync(AppSession session, StringPackageInfo package)
{
var commandKey = package.Key;
var parameters = package.Parameters;
await session.SendAsync(Encoding.UTF8.GetBytes($"You said: {string.Join(' ', parameters)}"));
}
}
Imports System.Text
Imports System.Threading.Tasks
Imports SuperSocket.Command
Imports SuperSocket.ProtoBase
Public Class MyCommand
Implements IAsyncCommand(Of AppSession, StringPackageInfo)
Public Async Function ExecuteAsync(ByVal session As AppSession, ByVal package As StringPackageInfo) As ValueTask
Dim commandKey = package.Key
Dim parameters = package.Parameters
Await session.SendAsync(Encoding.UTF8.GetBytes($"You said: {String.Join(" "c, parameters)}"))
End Function
End Class
Następnie skonfiguruj serwer do użycia polecenia:
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Command;
using SuperSocket.ProtoBase;
using SuperSocket.Server;
public class CommandLineServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<AppSession>()
.UseCommand<StringPackageParser>()
.AddCommand<MyCommand>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
using Microsoft.Extensions.Configuration;
using SuperSocket;
using SuperSocket.Command;
using SuperSocket.ProtoBase;
using SuperSocket.Server;
public class CommandLineServer
{
public static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create()
.UseTcpServer()
.UseSession<AppSession>()
.UseCommand<StringPackageParser>()
.AddCommand<MyCommand>()
.ConfigureAppConfiguration((hostCtx, configApp) =>
{
configApp.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.Build();
await host.RunAsync();
}
}
Imports Microsoft.Extensions.Configuration
Imports SuperSocket
Imports SuperSocket.Command
Imports SuperSocket.ProtoBase
Imports SuperSocket.Server
Public Class CommandLineServer
Public Shared Async Function Main(ByVal args() As String) As Task
Dim host = SuperSocketHostBuilder.Create().UseTcpServer().UseSession(Of AppSession)().UseCommand(Of StringPackageParser)().AddCommand(Of MyCommand)().ConfigureAppConfiguration(Sub(hostCtx, configApp)
configApp.AddJsonFile("appsettings.json", [optional]:= False, reloadOnChange:= True)
End Sub).Build()
Await host.RunAsync()
End Function
End Class
Ten przykład pokazuje, jak stworzyć prosty serwer wiersza poleceń przy użyciu SuperSocket C#. Idealny dla lekkich protokołów tekstowych.
Integrating SuperSocket C# with IronPDF
Integracja IronPDF z SuperSocket w swoich aplikacjach C# może znacznie zwiększyć możliwości serwera, zwłaszcza jeśli chodzi o obsługę plików PDF. Przyjrzyjmy się, jak skutecznie połączyć te dwa potężne narzędzia.
Wprowadzenie do IronPDF

IronPDF .NET Library to wszechstronna biblioteka .NET przeznaczona do tworzenia, edytowania i wyodrębniania treści z dokumentów PDF. Niezależnie od tego, czy potrzebujesz generować raporty, faktury, czy jakiekolwiek inne dokumenty na bazie PDF, IronPDF zapewnia łatwe w użyciu API do realizacji tych zadań. Jej główną cechą są możliwości konwersji HTML do PDF. To świetne narzędzie dla programistów, którzy chcą włączyć funkcjonalność PDF do swoich aplikacji, bez zajmowania się zawiłościami specyfikacji PDF.
IronPDF wyróżnia się w konwersji HTML do PDF, zapewniając precyzyjne zachowanie oryginalnych układów i stylów. Idealnie nadaje się do tworzenia plików PDF z treści internetowych, takich jak raporty, faktury i dokumentacja. Dzięki obsłudze plików HTML, adresów URL i surowych ciągów znaków HTML, IronPDF z łatwością tworzy wysokiej jakości dokumenty PDF.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
Use Case of Merging IronPDF with SuperSocket C
Wyobraź sobie, że masz serwer zbudowany przy użyciu SuperSocket, który musi obsługiwać żądania klientów dotyczące dynamicznego generowania i wysyłania dokumentów PDF. Poprzez integrację IronPDF, Twój serwer może przetwarzać te żądania, tworzyć PDF-y w locie i wysyłać je z powrotem do klientów bezproblemowo.
Przykład kodu dla przypadku użycia
Oto kompletny przykład kodu pokazujący, jak zintegrować IronPDF z SuperSocket. Ten przykład ustawia prosty serwer SuperSocket, który nasłuchuje połączeń klienta, przetwarza żądanie dotyczące generowania PDF i wysyła wygenerowany PDF z powrotem do klienta.
using System;
using System.Net;
using System.Text;
using IronPdf;
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Protocol;
namespace SuperSocketIronPDFExample
{
class Program
{
static void Main(string[] args)
{
var appServer = new AppServer();
var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
{
Name = "SuperSocketServer",
Ip = "Any",
Port = 2012,
Mode = SuperSocket.SocketBase.SocketMode.Tcp,
MaxConnectionNumber = 100,
};
if (!appServer.Setup(serverConfig))
{
Console.WriteLine("Failed to set up!");
return;
}
appServer.NewSessionConnected += NewSessionConnected;
appServer.NewRequestReceived += (session, requestInfo) =>
{
if (requestInfo.Key == "GENPDF")
{
var pdfDocument = CreatePdfDocument(requestInfo.Body);
var pdfBytes = pdfDocument.BinaryData;
session.Send(pdfBytes, 0, pdfBytes.Length);
Console.WriteLine("PDF document sent to client.");
}
};
if (!appServer.Start())
{
Console.WriteLine("Failed to start!");
return;
}
Console.WriteLine("Server is running. Press any key to stop...");
Console.ReadKey();
appServer.Stop();
}
private static PdfDocument CreatePdfDocument(string content)
{
var pdfRenderer = new ChromePdfRenderer();
var pdfDocument = pdfRenderer.RenderHtmlAsPdf(content);
return pdfDocument;
}
private static void NewSessionConnected(AppSession session)
{
Console.WriteLine($"New session connected: {session.SessionID}");
}
}
public class AppServer : AppServer<AppSession, StringRequestInfo>
{
}
public class AppSession : AppSession<AppSession, StringRequestInfo>
{
}
}
using System;
using System.Net;
using System.Text;
using IronPdf;
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Protocol;
namespace SuperSocketIronPDFExample
{
class Program
{
static void Main(string[] args)
{
var appServer = new AppServer();
var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
{
Name = "SuperSocketServer",
Ip = "Any",
Port = 2012,
Mode = SuperSocket.SocketBase.SocketMode.Tcp,
MaxConnectionNumber = 100,
};
if (!appServer.Setup(serverConfig))
{
Console.WriteLine("Failed to set up!");
return;
}
appServer.NewSessionConnected += NewSessionConnected;
appServer.NewRequestReceived += (session, requestInfo) =>
{
if (requestInfo.Key == "GENPDF")
{
var pdfDocument = CreatePdfDocument(requestInfo.Body);
var pdfBytes = pdfDocument.BinaryData;
session.Send(pdfBytes, 0, pdfBytes.Length);
Console.WriteLine("PDF document sent to client.");
}
};
if (!appServer.Start())
{
Console.WriteLine("Failed to start!");
return;
}
Console.WriteLine("Server is running. Press any key to stop...");
Console.ReadKey();
appServer.Stop();
}
private static PdfDocument CreatePdfDocument(string content)
{
var pdfRenderer = new ChromePdfRenderer();
var pdfDocument = pdfRenderer.RenderHtmlAsPdf(content);
return pdfDocument;
}
private static void NewSessionConnected(AppSession session)
{
Console.WriteLine($"New session connected: {session.SessionID}");
}
}
public class AppServer : AppServer<AppSession, StringRequestInfo>
{
}
public class AppSession : AppSession<AppSession, StringRequestInfo>
{
}
}
Imports System
Imports System.Net
Imports System.Text
Imports IronPdf
Imports SuperSocket.SocketBase
Imports SuperSocket.SocketBase.Protocol
Namespace SuperSocketIronPDFExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim appServer As New AppServer()
Dim serverConfig = New SuperSocket.SocketBase.Config.ServerConfig With {
.Name = "SuperSocketServer",
.Ip = "Any",
.Port = 2012,
.Mode = SuperSocket.SocketBase.SocketMode.Tcp,
.MaxConnectionNumber = 100
}
If Not appServer.Setup(serverConfig) Then
Console.WriteLine("Failed to set up!")
Return
End If
AddHandler appServer.NewSessionConnected, AddressOf NewSessionConnected
AddHandler appServer.NewRequestReceived, Sub(session, requestInfo)
If requestInfo.Key = "GENPDF" Then
Dim pdfDocument = CreatePdfDocument(requestInfo.Body)
Dim pdfBytes = pdfDocument.BinaryData
session.Send(pdfBytes, 0, pdfBytes.Length)
Console.WriteLine("PDF document sent to client.")
End If
End Sub
If Not appServer.Start() Then
Console.WriteLine("Failed to start!")
Return
End If
Console.WriteLine("Server is running. Press any key to stop...")
Console.ReadKey()
appServer.Stop()
End Sub
Private Shared Function CreatePdfDocument(ByVal content As String) As PdfDocument
Dim pdfRenderer = New ChromePdfRenderer()
Dim pdfDocument = pdfRenderer.RenderHtmlAsPdf(content)
Return pdfDocument
End Function
Private Shared Sub NewSessionConnected(ByVal session As AppSession)
Console.WriteLine($"New session connected: {session.SessionID}")
End Sub
End Class
Public Class AppServer
Inherits AppServer(Of AppSession, StringRequestInfo)
End Class
Public Class AppSession
Inherits AppSession(Of AppSession, StringRequestInfo)
End Class
End Namespace
Ta integracja pozwala na wykorzystanie potężnych funkcji IronPDF w serwerze SuperSocket, umożliwiając dynamiczne generowanie PDF i efektywną komunikację klient-serwer.
Wnioski

Integracja SuperSocket z kompleksowymi funkcjami IronPDF to potężne połączenie do tworzenia dynamicznych, wysokowydajnościowych aplikacji serwerowych, które mogą bezproblemowo obsługiwać generowanie i przetwarzanie PDF. Z solidnym frameworkiem serwera socket SuperSocket i kompleksowymi funkcjami PDF IronPDF, możesz rozwijać skalowalne i wszechstronne aplikacje, aby zaspokoić różnorodne potrzeby, od systemów akwizycji danych po serwery gier i systemy sterowania przemysłowego.
IronPDF oferuje bezpłatną wersję próbną, a jego licencjonowanie zaczyna się od $799, zapewniając doskonałą wartość za rozległe możliwości, które wnosi do Twoich projektów rozwojowych. Poprzez połączenie tych dwóch bibliotek, możesz usprawnić zdolność serwera do efektywnego zarządzania złożonymi zadaniami, zwiększając zarówno funkcjonalność, jak i wydajność.
Często Zadawane Pytania
Do czego służy SuperSocket C#?
SuperSocket C# służy do tworzenia aplikacji gniazdowych po stronie serwera. Jest wysoce rozszerzalny i obsługuje różne protokoły sieciowe, dzięki czemu nadaje się do środowisk takich jak serwery GPS i przemysłowe systemy sterowania.
Jak mogę przekonwertować HTML na PDF w aplikacji .NET?
Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF oraz metody RenderHtmlFileAsPdf do konwersji plików HTML na pliki PDF w aplikacji .NET.
Jak skonfigurować serwer SuperSocket w projekcie .NET?
Aby skonfigurować serwer SuperSocket w projekcie .NET, należy zainstalować pakiet NuGet SuperSocket, skonfigurować serwer za pomocą pliku appsettings.json oraz zainicjować serwer w kodzie aplikacji.
W jaki sposób IronPDF może usprawnić działanie aplikacji po stronie serwera?
IronPDF może usprawnić działanie aplikacji po stronie serwera, zapewniając dynamiczne generowanie i przetwarzanie plików PDF, umożliwiając tworzenie i dystrybucję dokumentów PDF w czasie rzeczywistym na podstawie żądań klientów.
Czy SuperSocket może obsługiwać wiele odbiorników protokołów?
Tak, SuperSocket może zarządzać wieloma odbiornikami protokołów, umożliwiając pojedynczej instancji serwera obsługę różnych protokołów i portów jednocześnie dla aplikacji takich jak serwery gromadzenia danych.
Jakie korzyści oferuje IronPDF w zakresie obsługi dokumentów PDF?
IronPDF oferuje kompleksowe funkcje do tworzenia, edycji i wyodrębniania treści z dokumentów PDF. Jest idealnym rozwiązaniem dla aplikacji wymagających zaawansowanej obsługi i manipulacji dokumentami PDF.
W jaki sposób SuperSocket obsługuje równoczesne połączenia gniazdowe?
SuperSocket obsługuje równoczesne połączenia gniazdowe przy użyciu klas sesji do zarządzania zdarzeniami połączeń, zapewniając niezawodną komunikację i wysoką wydajność serwera nawet przy dużym obciążeniu.
Czy możliwe jest zintegrowanie funkcji PDF z aplikacjami SuperSocket?
Tak, integrując IronPDF z aplikacjami SuperSocket, można dodać funkcje związane z plikami PDF, takie jak dynamiczne generowanie i edycja plików PDF, zwiększając tym samym możliwości aplikacji.
Jakie są typowe zastosowania SuperSocket?
Typowe zastosowania SuperSocket obejmują serwery GPS, przemysłowe systemy sterowania, serwery gromadzenia danych oraz serwery gier działające w czasie rzeczywistym, z których wszystkie czerpią korzyści z wydajnej i niezawodnej komunikacji przez gniazda.
Jak mogę obsługiwać dane binarne w SuperSocket?
SuperSocket efektywnie obsługuje dane binarne, wykorzystując klasy sesji do przetwarzania przychodzących pakietów binarnych i wysyłania odpowiedzi, co jest niezbędne w aplikacjach wymagających przetwarzania danych na poziomie binarnym.
Czy IronPDF obsługuje konwersję HTML do PDF w aplikacjach serwerowych?
Tak, IronPDF obsługuje konwersję HTML do PDF w aplikacjach serwerowych, umożliwiając płynne przekształcanie treści HTML w wysokiej jakości dokumenty PDF.




