c#实现socket通信 - SuperSocket使用简述

SuperSocket是一款轻量级、可扩展的套接字应用程序框架,适用于.NET语言开发者。它简化了套接字应用程序的构建过程,允许用户专注于业务逻辑而非底层通信细节。此框架支持命令行协议,自定义协议,并提供了易于集成的API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        SuperSocket 是一个轻量级的可扩展套接字应用程序框架。 您可以使用它轻松构建始终连接的套接字应用程序,而无需考虑如何使用套接字、如何维护套接字连接以及套接字如何工作。 它是一个纯C#项目,旨在扩展,因此只要使用.NET语言开发,就可以轻松集成到您现有的系统中。

        官网地址:Home - SuperSockethttps://www.supersocket.net/

        git地址:GitHub - kerryjiang/SuperSocket: SuperSocket is a light weight, cross platform and extensible socket server application framework.https://github.com/kerryjiang/SuperSocket

        官网主要分两个版本1.5/1.6,2.0

        我这里使用了1.6版本,做了一个十分简单的功能,且是短连接,使用场景不是很频繁。值得说明的是客户端发送结束符后,结束符可以自定义,连接会自动断开。

        一般硬件的协议都是“带起止符的协议”或者“头部格式固定并且包含内容长度的协议”,我这里是完全自定义的。

        下面摘自SuperSocket1.6中文文档:SuperSocket 1.6 中文文档https://docs.supersocket.net/v1-6/zh-CN

        在SuperSocket命令行协议是一种被广泛应用的协议。一些成熟的协议如 Telnet, SMTP, POP3 和 FTP 都是基于命令行协议的。 在SuperSocket 中, 如果你没有定义自己的协议,SuperSocket 将会使用命令行协议, 这会使这样的协议的开发变得很简单。命令行协议定义了每个请求必须以回车换行结尾 "\r\n"。

        创建你的AppServer类型

public class TelnetServer : AppServer<TelnetSession>
{
    protected override bool Setup(IRootConfig rootConfig, IServerConfig config)
    {
        return base.Setup(rootConfig, config);
    }

    protected override void OnStartup()
    {
        base.OnStartup();
    }

    protected override void OnStopped()
    {
        base.OnStopped();
    }
}

        服务器启动和停止代码

static void Main(string[] args)
{
    Console.WriteLine("Press any key to start the server!");

    Console.ReadKey();
    Console.WriteLine();

    var appServer = new AppServer();

    //Setup the appServer
    if (!appServer.Setup(2012)) //Setup with listening port
    {
        Console.WriteLine("Failed to setup!");
        Console.ReadKey();
        return;
    }

    Console.WriteLine();

    //Try to start the appServer
    if (!appServer.Start())
    {
        Console.WriteLine("Failed to start!");
        Console.ReadKey();
        return;
    }

    Console.WriteLine("The server started successfully, press key 'q' to stop it!");

    while (Console.ReadKey().KeyChar != 'q')
    {
        Console.WriteLine();
        continue;
    }

    //Stop the appServer
    appServer.Stop();

    Console.WriteLine("The server was stopped!");
    Console.ReadKey();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐望云起

如果觉得有用,请不吝打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值