• C# 控制台程序发布到服务器Linux系统上运行


    1、创建控制台程序

    在这里插入图片描述
    在这里插入图片描述

    如上图所示,选择linux开发平台,我用的VS2019,.Net5.0,一直点下一步,创建。

    2、创建TCP服务端程序

    using LinuxTcpApp.TcpServer;
    using System;
    using System.Net;
    
    namespace LinuxTcpApp
    {
        class Program
        {
            private static AsyncTcpServer tcpServer;
            static void Main(string[] args)
            {
                Console.WriteLine("程序开始运行");
                IPAddress ipAddress;
                IPAddress.TryParse("0.0.0.0", out ipAddress);
                tcpServer = new AsyncTcpServer(ipAddress, 9888);
                tcpServer.ClientConnected += TcpServer_ClientConnected;
                tcpServer.ClientDisconnected += TcpServer_ClientDisconnected;
                tcpServer.PlaintextReceived += TcpServer_PlaintextReceived;
                tcpServer.Start();
                while (true)
                {
                    Thread.Sleep(1);
                }
            }
            
            private static void TcpServer_PlaintextReceived(object sender, TcpDatagramReceivedEventArgs e)
            {
                Console.WriteLine(e.Datagram);
                tcpServer.SendAll(e.Datagram);
            }
    
            private static void TcpServer_ClientDisconnected(object sender, TcpClientDisconnectedEventArgs e)
            {
                Console.WriteLine("连接断开"+ e.TcpClient.Client.LocalEndPoint.ToString());
            }
    
            private static void TcpServer_ClientConnected(object sender, TcpClientConnectedEventArgs e)
            {
                Console.WriteLine("连接成功"+ e.TcpClient.Client.LocalEndPoint.ToString());
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    需要源码的后台私聊

    3、利用vs发布程序

    我这里手动发布至文件夹,然后压缩上传到服务器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    把文件放到了桌面,打开cmd利用SCP命令上传至服务器,有上传工具可以用工具上传,可以百度下载。

    在这里插入图片描述

    4、Ubuntu服务器安装.Net环境

    安装命令如下:

    sudo apt-get install dotnet-sdk-5.0
    
    • 1

    如果apt下载不了,请更新

    wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt-get update
    
    • 1
    • 2
    • 3

    5、解压运行tcp服务端程序

    连接服务器工具我用的是Git Bash,使用ssh命令,登录解压命令用rar x linux-x64
    在这里插入图片描述
    在这里插入图片描述
    进入解压后的文件夹查看tcp使用情况,使用命令netstat -apt
    在这里插入图片描述
    由上图所知,没有9888这个端口的服务启动过。
    之后用dotnet 命令运行LinuxTcpApp.dll,即可启动程序
    在这里插入图片描述
    可以用调试助手,进行通讯测试程序是否有问题
    在这里插入图片描述

    6、服务器后台运行程序

    使用nohup命令,让程序在后台运行。完整命令如下,参数可以百度了解。
    在这里插入图片描述
    再次查看,tcp使用情况,如下图所示:
    在这里插入图片描述

    至此利用C# 语言跨平台Tcp服务器程序开发部署完毕,当有大型程序任务开发时,此方法不推荐使用,最好使用容器,保证程序的运行的稳定性。

  • 相关阅读:
    (附源码)springboot大学生创新创业管理 毕业设计 041557
    Python移除指定文件夹中所有文件名称中的特殊字符(数字、特殊字符、空格等)、只保留字母字符
    PyCLIPS的安装
    关于VMware Workstation Pro中虚拟机无法连接外网问题解决
    单例模式---线程安全实现
    ssm框架
    信维通信投资者关系活动:揭示5G创新实践,展望未来发展
    WISE 2019 | ML-GCN:多标签图节点分类的半监督图嵌入
    vue中 字体图标引入 - iconfont阿里字体图标库
    MySql数据库-02MySQL环境搭建
  • 原文地址:https://blog.csdn.net/m0_67401660/article/details/126317837