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

2023-05-16

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

需要源码的后台私聊

3、利用vs发布程序

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

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

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

在这里插入图片描述

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

安装命令如下:

sudo apt-get install dotnet-sdk-5.0

如果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

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

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

6、服务器后台运行程序

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 控制台程序发布到服务器Linux系统上运行 的相关文章

  • STM32收入高也好找工作,所以我学嵌入式linux终究是错付了吗

    STM32收入高也好找工作 xff0c 所以我学嵌入式linux终究是错付了吗 经常有同学纠结问我 xff1a 我到底是学STM32还是学嵌入式linux 这个问题很多人都会有自己的看法 xff0c 今天我试着从多个角度 xff0c 把了解
  • Java面试基础篇

    Java面试基础篇 基础总结 博客链接导航 Java语言基础常识 https blog csdn net article details 88531257 J2EE基础知识 https blog csdn net article detai
  • 项目实战-外卖自提柜 3. FreeRTOS主要API的应用

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项
  • [Spring] IntelliJ IDEA 新建工程时没有Spring选项的解决方法

    Spring IntelliJ IDEA 新建工程时没有Spring选项的解决方法 专业版 xff08 ultimate xff09 社区版 xff08 community xff09 刚开始学习Java Spring框架 xff0c 也是
  • MySQL下载与安装教程(超详细)

    一 MySQL下载 下载地址 xff1a https dev mysql com downloads mysql 根据自己需要下载对应的版本 xff0c 我下载的是mysql 5 7 31 二 MySQL安装教程 1 解压安装包 下载后得到
  • docker 开发编译环境搭建

    参与docker开源社区 xff0c 成为docker项目的contributor xff0c 首先要搭建docker的开发编译环境 xff0c 下面是docker官网介绍的编译环境的搭建 xff0c 这里做个笔记 docker的编译环境准
  • qt基础入门教程

    1 t的介绍 优点 成功案例 5 8 0 Qt是一个跨平台的C 43 43 图形用户界面应用程序框架 它为应用程序开发者提供建立艺术级图形界面所需的所有功能 爸是完全面向对象的 xff0c 很容易扩展 xff0c 并且允许真正的组件编程 推
  • Java开发自学教程!japonensisjava东莞

    三大内容 xff1a Java并发编程Java高并发编程高并发系统设计 Java并发编程 1 概览 2 进程与线程 3 Java 线程 4 共享模型之管程 5 共享模型之内存 6 共享模型之无锁 7 共享模型之不可变 8 共享模型之工具 并
  • MySQL 5.7 安装教程(全步骤、保姆级教程)

    2022年05月30日更新 本文介绍的是只安装MySQL数据库的过程 xff0c 并不包含各种其他附加工具 安装完成之后通常使用Navicat或SQLyog进行可视化操作 清华的镜像网站只保存最新的几个MySQL版本 xff0c 所以直链可
  • 手把手教你如何Vue项目打包dist文件并Tomcat发布【超级详细】

    作者 xff1a bug菌 博客 xff1a CSDN 掘金等 公众号 xff1a 猿圈奇妙屋 特别声明 xff1a 原创不易 xff0c 转载请附上原文出处链接和本文声明 xff0c 谢谢配合 版权声明 xff1a 文章里可能部分文字或者
  • node 14.19.0 版本成功解决:安装 node-sass 和 sass-loader 的过程及各 node 版本对应的 node-sass 版本号

    1 node 版本 node sass 版本及 sass loader 版本查看 xff1a 其一 我的 node 版本查看 xff1a 在命令行输入查询命令 xff1a node v 我的 node 版本为 xff1a v14 19 0
  • Shiro反序列化漏洞【详细解析】

    Shiro是什么东西 Shiro 是 Java 的一个安全框架 xff0c 执行身份验证 授权 密码 会话管理shiro默认使用了CookieRememberMeManager xff0c 其处理cookie的流程是 xff1a 得到rem
  • Go语言面试题

    1 Go有哪些数据类型 f 2 方法与函数的区别 在Go语言中 xff0c 函数和方法不太一样 xff0c 有明确的概念区分 xff1b 函数是指不属于任何结构体 类型的方法 xff0c 也就是说函数是没有接收者的 xff1b 而方法是有接
  • 项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项
  • ubuntu中关于通过编辑.bashrc文件修改提示符的简单过程

    这两天在看关于shell变量的一些内容 xff0c 突然有个想法 xff0c 就是修改下自己终端的提示符 记得先前的提示符应该是 xff1a wjl 64 wjl desktop 使用wjl账户在 home wjl目录下 root 64 w
  • MySQL高级篇知识点——索引优化与查询优化

    目录 1 数据准备 1 1 建库建表1 2 创建相关函数1 3 创建存储过程1 4 调用存储过程1 5 删除某表上的索引 2 索引失效案例 2 1 全值匹配2 2 最佳左前缀匹配原则2 3 主键插入顺序2 4 计算 函数 类型转换 xff0
  • Vue路由&&无痕浏览 - nodeJs环境搭建

    目录 一 Vue路由 1 1 路由的使用步骤 1 2 无痕浏览 二 nodeJs环境搭建 2 1 Node js是什么 2 2 配置NodeJS环境 2 3 下载github的Vue项目 一 Vue路由 1 1 路由的使用步骤
  • Docker的数据管理和端口映射实现容器访问

    Docker的数据管理 存储资源类型 在使用Docker的过程中 xff0c 需要查看容器内应用产生的数据 xff0c 或者需要将容器内数据进行备份 xff0c 甚至需要多个容器之间进行数据共享时 xff0c 势必会设计到容器的数据管理 x
  • 爬取CSDN专栏文章到本地,并保存为html、pdf、md格式

    前言 突然想爬取CSDN的专栏文章到本地保存了 xff0c 为了影响小一点 xff0c 特地挑选CSDN的首页进行展示 综合资讯这一测试点是什么找到的呢 xff1f 就是点击下图的热点文章 xff0c 然后跳转到具体文章 xff0c 然后再
  • Docker-desktop(Docker桌面版)——入门篇

    前言 本章内容主要涉及内容 xff1a 在Windows10系统下进行安装和简单使用 Docker desktop Docker桌面版 如果你是docker初学者 xff0c 或者压根就不知道docker是什么 xff0c 那你一定要先知道

随机推荐