ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
SuperSocket C#(スーパソケットC#)は、GPSサーバーや産業制御システムに取り組んでいる場合でも、サーバーサイドのソケットアプリケーションを開発するための優れたフレームワークです。 さまざまなネットワークプロトコルの実装をサポートし、ソケットが効率的に動作することを保証します。 この軽量なクロスプラットフォームフレームワークは、さまざまな環境に対応する柔軟性を提供するように拡張可能な設計がされています。 SuperSocketを使用すると、クライアントとサーバー間でデータを簡単に送信でき、そのソースコードは特定のプロジェクト要件に合わせてカスタマイズすることができます。
これはオープンソースのフレームワークであり、どの開発者でもGitHubを通して実装およびアクセスすることができます。
IronPDF は、PDFドキュメントの作成、編集、および内容抽出を行うための強力な.NETライブラリです。 それは、自分のアプリケーションにPDF機能を統合する必要がある開発者向けに設計されています。 IronPDFは、HTMLからPDFの生成、PDFのマージ、PDFからのテキストや画像の抽出などのさまざまな機能をサポートしています。
SuperSocket と IronPDF を一緒に使用することで、複雑なサーバーサイドアプリケーションを実現できます。 彼らは、現代の.NET開発者のニーズを満たすために幅広い機能を提供しています。 これらのライブラリは、データ取得サーバーを構築する場合やリアルタイムチャットアプリケーションが必要な堅牢なゲームサーバーを構築する場合に最適です。
SuperSocket C#の使用を開始するには、まず.NETプロジェクトを設定する必要があります。 まず、SuperSocket NuGetパッケージをインストールします。 Visual Studioでプロジェクトを開き、パッケージマネージャーコンソールで次のコマンドを実行します:
Install-Package SuperSocket
インストールが完了したら、サーバーインスタンスを構成できます。 新しい設定ファイルを appsettings.json
という名前で作成します。 このファイルは、リスナーおよびプロトコルを含むサーバー設定を定義します。
{
"serverOptions": {
"name": "SuperSocketServer",
"listeners": [
{
"ip": "Any",
"port": 4040
}
]
}
}
次に、サーバーを設定するためのクラスを作成します。 このクラスは appsettings.json
から設定を読み取り、サーバーインスタンスを初期化します。
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();
}
}
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();
}
}
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
では、SuperSocket C# アプリケーションの基本的な例を見てみましょう。 この例は、受信したデータをそのまま送り返すシンプルなエコーサーバーを作成する方法を示しています。
まず、セッションクラスを定義します。 このクラスはソケット接続を処理し、データ通信を管理します。
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);
}
}
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);
}
}
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
次に、エコーセッションでサーバーを構成して実行します。
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();
}
}
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();
}
}
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
この例は、SuperSocket C# を使用してシンプルなエコーサーバーを作成する方法を示しています。 サーバーは接続を待ち受け、受信したデータをそのまま返します。
SuperSocket C# は複数のリスナーをサポートしており、サーバーが異なるプロトコルやポートを処理できるようにします。 この機能は、データ取得サーバやGPSサーバのような多用途アプリケーションを作成するために便利です。
まず、appsettings.json
を更新して複数のリスナーを含めます:
{
"serverOptions": {
"name": "MultiListenerServer",
"listeners": [
{
"ip": "Any",
"port": 4040
},
{
"ip": "Any",
"port": 5050
}
]
}
}
次に、これらのリスナーを使用するようにサーバーを設定します。
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();
}
}
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();
}
}
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
このセットアップにより、サーバーはポート4040と5050の両方で接続を処理できます。この機能は、さまざまなネットワーク プロトコルを管理する必要があるアプリケーションにとって重要です。
SuperSocket C#はバイナリデータの処理に効率的です。 これは、産業制御システムのようなバイナリレベルの互換性を必要とするアプリケーションにとって重要です。
まず、バイナリデータを処理するセッションクラスを定義します:
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);
}
}
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);
}
}
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
次に、バイナリデータセッションを使用してサーバーを構成し、実行します。
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();
}
}
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();
}
}
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
以下の例は、SuperSocket C# を使用してバイナリデータを受信および送信する方法を示しています。 バイナリプロトコルを処理する必要がある高性能アプリケーションにとって有用です。
ソケット接続の維持は、信頼できる通信を確保するために不可欠です。 SuperSocket C# はこのプロセスを簡単にします。
まず、ソケット接続を管理するセッションクラスを定義します:
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);
}
}
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);
}
}
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
次に、接続セッションを使用してサーバーを構成し、実行します。
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();
}
}
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();
}
}
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
このセットアップはソケット接続を管理し、サーバーが堅牢で信頼できる状態を維持するのに役立ちます。
SuperSocket C#は、コマンドラインサーバーの作成をサポートします。 この機能は、シンプルなテキストベースのプロトコルを必要とするアプリケーションに便利です。
まず、テキストコマンドを処理するコマンドクラスを定義します:
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)}"));
}
}
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)}"));
}
}
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
次に、コマンドを使用するようにサーバーを設定します:
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();
}
}
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();
}
}
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
この例では、SuperSocket C# を使用してシンプルなコマンドラインサーバーを作成する方法を示します。 軽量なテキストベースのプロトコルに最適です。
C#アプリケーションにおいて、SuperSocketとIronPDFを統合することで、特にPDFファイルの処理に関してサーバーの能力を大幅に向上させることができます。 これらの2つの強力なライブラリを効果的に統合する方法を探りましょう。
IronPDF .NET ライブラリは、PDFドキュメントの作成、編集、およびコンテンツの抽出のために設計された多用途の.NETライブラリです。 レポート、請求書、その他のPDFベースのドキュメントを生成する必要がある場合、IronPDFはこれらのタスクを達成するための使いやすいAPIを提供します。 主な特徴は、その**HTMLからPDFへの変換機能。 PDFの仕様の複雑さに対処することなく、自分のアプリケーションにPDF機能を組み込みたいと考えている開発者にとって、これは素晴らしいツールです。
SuperSocketを使用して構築されたサーバーが、クライアントからのリクエストに応じてPDFドキュメントを動的に生成および送信する必要があると想像してみてください。 IronPDFを統合することで、サーバーはこれらのリクエストを処理し、即座にPDFを作成してクライアントにシームレスに送信することができます。
以下は、IronPDFとSuperSocketを統合する方法を示す完全なコード例です。 この例では、クライアント接続を待ち受け、PDFを生成するリクエストを処理し、生成されたPDFをクライアントに送信するシンプルなSuperSocketサーバーをセットアップします。
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
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 ServerConfig
{
Name = "SuperSocketServer",
Ip = "Any",
Port = 2012,
Mode = SocketMode.Tcp,
MaxConnectionNumber = 100,
};
if (!appServer.Setup(serverConfig))
{
Console.WriteLine("Failed to set up!");
return;
}
appServer.NewSessionConnected += NewSessionConnected;
appServer.NewRequestReceived += NewRequestReceived;
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 void NewSessionConnected(AppSession session)
{
Console.WriteLine($"New session connected: {session.SessionID}");
}
private static void NewRequestReceived(AppSession session, StringRequestInfo 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.");
}
}
private static PdfDocument CreatePdfDocument(string content)
{
var pdfRenderer = new ChromePdfRenderer();
var pdfDocument = pdfRenderer.RenderHtmlAsPdf(content);
return pdfDocument;
}
}
public class AppServer : AppServer<AppSession, StringRequestInfo>
{
}
public class AppSession : AppSession<AppSession, StringRequestInfo>
{
}
public class StringRequestFilterFactory : IRequestFilterFactory<StringRequestInfo>
{
public IRequestFilter<StringRequestInfo> CreateFilter(IAppServer appServer, IAppSession appSession, IPEndPoint remoteEndPoint)
{
return new TerminatorRequestFilterFactory().CreateFilter(appServer, appSession, remoteEndPoint);
}
}
}
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
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 ServerConfig
{
Name = "SuperSocketServer",
Ip = "Any",
Port = 2012,
Mode = SocketMode.Tcp,
MaxConnectionNumber = 100,
};
if (!appServer.Setup(serverConfig))
{
Console.WriteLine("Failed to set up!");
return;
}
appServer.NewSessionConnected += NewSessionConnected;
appServer.NewRequestReceived += NewRequestReceived;
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 void NewSessionConnected(AppSession session)
{
Console.WriteLine($"New session connected: {session.SessionID}");
}
private static void NewRequestReceived(AppSession session, StringRequestInfo 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.");
}
}
private static PdfDocument CreatePdfDocument(string content)
{
var pdfRenderer = new ChromePdfRenderer();
var pdfDocument = pdfRenderer.RenderHtmlAsPdf(content);
return pdfDocument;
}
}
public class AppServer : AppServer<AppSession, StringRequestInfo>
{
}
public class AppSession : AppSession<AppSession, StringRequestInfo>
{
}
public class StringRequestFilterFactory : IRequestFilterFactory<StringRequestInfo>
{
public IRequestFilter<StringRequestInfo> CreateFilter(IAppServer appServer, IAppSession appSession, IPEndPoint remoteEndPoint)
{
return new TerminatorRequestFilterFactory().CreateFilter(appServer, appSession, remoteEndPoint);
}
}
}
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading.Tasks
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 As New ServerConfig With {
.Name = "SuperSocketServer",
.Ip = "Any",
.Port = 2012,
.Mode = 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, AddressOf NewRequestReceived
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 Sub NewSessionConnected(ByVal session As AppSession)
Console.WriteLine($"New session connected: {session.SessionID}")
End Sub
Private Shared Sub NewRequestReceived(ByVal session As AppSession, ByVal requestInfo As StringRequestInfo)
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
Private Shared Function CreatePdfDocument(ByVal content As String) As PdfDocument
Dim pdfRenderer = New ChromePdfRenderer()
Dim pdfDocument = pdfRenderer.RenderHtmlAsPdf(content)
Return pdfDocument
End Function
End Class
Public Class AppServer
Inherits AppServer(Of AppSession, StringRequestInfo)
End Class
Public Class AppSession
Inherits AppSession(Of AppSession, StringRequestInfo)
End Class
Public Class StringRequestFilterFactory
Implements IRequestFilterFactory(Of StringRequestInfo)
Public Function CreateFilter(ByVal appServer As IAppServer, ByVal appSession As IAppSession, ByVal remoteEndPoint As IPEndPoint) As IRequestFilter(Of StringRequestInfo)
Return (New TerminatorRequestFilterFactory()).CreateFilter(appServer, appSession, remoteEndPoint)
End Function
End Class
End Namespace
この統合により、SuperSocketサーバー内でIronPDFの強力な機能を活用し、動的なPDF生成と効率的なクライアント-サーバー間通信を実現することができます。
SuperSocketを統合するIronPDFの包括的な機能。PDFの生成および処理をシームレスに行える、動的で高性能なサーバーアプリケーションを作成するための強力な組み合わせです。 SuperSocketの堅牢なソケットサーバーフレームワークとIronPDFの包括的なPDF機能を組み合わせることで、データ収集システムからゲームサーバー、産業用制御システムまで、さまざまなニーズに対応するスケーラブルで多目的なアプリケーションを開発できます。
IronPDFは無料体験価格は$749からで、その機能は開発プロジェクトにおいて優れた価値を提供します。 これら二つのライブラリを統合することで、サーバーの複雑なタスク処理能力を効率化し、機能性と性能の両方を向上させることができます。
9つの .NET API製品 オフィス文書用