IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Exemplo de Supersocket em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Desenvolvendo uma aplicação de socket do lado do servidor com SuperSocket e integrando o IronPDF.

SuperSocket C# é uma excelente estrutura para desenvolver aplicações de socket do lado do servidor, seja para um servidor GPS ou um sistema de controle industrial. Ele oferece suporte a diversas implementações de protocolos de rede e garante que seu socket funcione de forma eficiente. Essa estrutura multiplataforma leve foi projetada para ser extensível, oferecendo flexibilidade para diferentes ambientes. Com o SuperSocket, você pode enviar dados facilmente entre clientes e servidores, e seu código-fonte está disponível para personalização, atendendo aos requisitos específicos de cada projeto.

É um framework de código aberto, portanto qualquer desenvolvedor pode implementá-lo e acessá-lo através do GitHub.

Exemplo de C# do SuperSocket (Como Funciona para Desenvolvedores): Figura 1 - Página do GitHub para SuperSocket

IronPDF é uma poderosa biblioteca .NET para criar, editar e extrair conteúdo de documentos PDF. Ele foi projetado para desenvolvedores que precisam integrar a funcionalidade de PDF em seus aplicativos. O IronPDF oferece suporte a vários recursos, como geração de PDFs a partir de HTML, mesclagem de PDFs e extração de texto e imagens de PDFs.

O SuperSocket e o IronPDF, juntos, podem alimentar aplicações complexas do lado do servidor. Eles oferecem uma ampla gama de funcionalidades para atender às necessidades dos desenvolvedores .NET modernos. Essas bibliotecas são perfeitas tanto para a criação de um servidor de aquisição de dados quanto para um servidor de jogos robusto onde aplicativos de bate-papo em tempo real são necessários.

Getting Started with SuperSocket C#

Configurando o SuperSocket C# em Projetos .NET

Para começar a usar o SuperSocket C#, você precisa configurar seu projeto .NET . Primeiro, instale o pacote NuGet SuperSocket. Abra seu projeto no Visual Studio e execute o seguinte comando no Console do Gerenciador de Pacotes:

PM > Install-Package SuperSocket

Exemplo de C# do SuperSocket (Como Funciona para Desenvolvedores): Figura 2 - Saída do console a partir da instalação do SuperSocket

Após a instalação, você poderá configurar sua instância de servidor. Crie um novo arquivo de configuração chamado appsettings.json. Este arquivo definirá as configurações do servidor, incluindo os ouvintes e os protocolos.

{
  "serverOptions": {
    "name": "SuperSocketServer",
    "listeners": [
      {
        "ip": "Any",
        "port": 4040
      }
    ]
  }
}
JSON

Em seguida, crie uma classe para configurar o servidor. Esta classe irá ler as configurações de appsettings.json e inicializar a instância do servidor.

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();
    }
}

Um Exemplo Básico de SuperSocket C#

Vamos analisar um exemplo básico de uma aplicação SuperSocket em C#. Este exemplo demonstra como criar um servidor de eco simples que reenvia quaisquer dados recebidos.

Primeiro, defina a classe de sessão. Esta classe irá lidar com as conexões de soquete e gerenciar a comunicação de dados.

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);
    }
}

Em seguida, configure e execute o servidor com a sessão de eco.

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();
    }
}

Este exemplo mostra como criar um servidor de eco simples usando SuperSocket C#. O servidor fica à escuta de conexões e ecoa todos os dados que recebe.

Implementing Features of SuperSocket C#

Lidando com vários ouvintes

O SuperSocket C# suporta múltiplos listeners, permitindo que seu servidor lide com diferentes protocolos e portas. Essa funcionalidade é útil para criar aplicações versáteis, como servidores de aquisição de dados e servidores GPS.

Primeiro, atualize seu appsettings.json para incluir múltiplos ouvintes:

{
  "serverOptions": {
    "name": "MultiListenerServer",
    "listeners": [
      {
        "ip": "Any",
        "port": 4040
      },
      {
        "ip": "Any",
        "port": 5050
      }
    ]
  }
}
JSON

Em seguida, configure o servidor para usar esses ouvintes:

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();
    }
}

Com essa configuração, seu servidor pode lidar com conexões nas portas 4040 e 5050. Essa capacidade é crucial para aplicativos que precisam gerenciar vários protocolos de rede.

Implementando o tratamento de dados binários

O SuperSocket C# é eficiente no tratamento de dados binários. Isso é importante para aplicações que exigem compatibilidade em nível binário, como sistemas de controle industrial.

Primeiro, defina uma classe de sessão que processe dados binários:

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);
    }
}

Em seguida, configure e execute o servidor com a sessão de dados binários:

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();
    }
}

Este exemplo demonstra como receber e enviar dados binários usando o SuperSocket em C#. É útil para aplicações de alto desempenho que precisam processar protocolos binários.

Gerenciando conexões de soquete

Manter as conexões das tomadas em bom estado é essencial para garantir uma comunicação confiável. O SuperSocket C# simplifica esse processo.

Primeiro, defina uma classe de sessão que gerencie as conexões de soquete:

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);
    }
}

Em seguida, configure e execute o servidor com a sessão de conexão:

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();
    }
}

Essa configuração ajuda a gerenciar as conexões de soquete, garantindo que seu servidor permaneça robusto e confiável.

Criando um servidor de linha de comando

O SuperSocket C# oferece suporte à criação de servidores de linha de comando. Essa funcionalidade é útil para aplicações que requerem protocolos simples baseados em texto.

Primeiro, defina uma classe de comando que processe comandos de texto:

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)}"));
    }
}

Em seguida, configure o servidor para usar o comando:

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();
    }
}

Este exemplo mostra como criar um servidor de linha de comando simples usando SuperSocket C#. É ideal para protocolos leves baseados em texto.

Integrating SuperSocket C# with IronPDF

A integração do IronPDF com o SuperSocket em suas aplicações C# pode aprimorar significativamente os recursos do seu servidor, especialmente no que diz respeito ao processamento de arquivos PDF. Vamos explorar como combinar essas duas bibliotecas poderosas de forma eficaz.

Introdução ao IronPDF

Página da web do IronPDF

A biblioteca IronPDF .NET é uma biblioteca .NET versátil, projetada para criar, editar e extrair conteúdo de documentos PDF. Seja para gerar relatórios, faturas ou qualquer outro documento em PDF, o IronPDF oferece uma API fácil de usar para realizar essas tarefas. Sua principal característica é a capacidade de converter HTML em PDF . É uma ótima ferramenta para desenvolvedores que desejam incorporar a funcionalidade de PDF em seus aplicativos sem lidar com as complexidades das especificações de PDF.

O IronPDF se destaca na conversão de HTML para PDF , garantindo a preservação precisa dos layouts e estilos originais. É perfeito para criar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Com suporte para arquivos HTML, URLs e strings HTML brutas, o IronPDF produz facilmente documentos PDF de alta qualidade.

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");
    }
}

Use Case of Merging IronPDF with SuperSocket C#

Imagine que você tem um servidor construído com SuperSocket que precisa lidar com solicitações de clientes para gerar e enviar documentos PDF dinamicamente. Ao integrar o IronPDF, seu servidor pode processar essas solicitações, criar PDFs instantaneamente e enviá-los de volta aos clientes sem problemas.

Exemplo de código de caso de uso

Aqui está um exemplo de código completo demonstrando como integrar o IronPDF com o SuperSocket. Este exemplo configura um servidor SuperSocket simples que fica à escuta de conexões de clientes, processa uma solicitação para gerar um PDF e envia o PDF gerado de volta para o cliente.

using System;
using System.Net;
using System.Text;
using IronPdf;
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Protocol;

namespace SuperSocket IronPDFExample
{
    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>
    {
    }
}
C#

Essa integração permite que você aproveite os poderosos recursos do IronPDF em um servidor SuperSocket, possibilitando a geração dinâmica de PDFs e uma comunicação eficiente entre cliente e servidor.

Conclusão

Informações de licenciamento do IronPDF

A integração do SuperSocket com os recursos abrangentes do IronPDF é uma combinação poderosa para a criação de aplicativos de servidor dinâmicos e de alto desempenho, capazes de lidar com a geração e o processamento de PDFs de forma integrada. Com a robusta estrutura de servidor de sockets do SuperSocket e as funcionalidades abrangentes de PDF do IronPDF, você pode desenvolver aplicações escaláveis ​​e versáteis para atender a diversas necessidades, desde sistemas de aquisição de dados a servidores de jogos e sistemas de controle industrial.

IronPDF oferece uma avaliação gratuita, e seu licenciamento começa a partir de $999, proporcionando excelente valor pelas capacidades extensivas que traz para seus projetos de desenvolvimento. Ao combinar essas duas bibliotecas, você pode otimizar a capacidade do seu servidor de lidar com tarefas complexas de forma eficiente, aprimorando tanto a funcionalidade quanto o desempenho.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.