精华内容
下载资源
问答
  • 主要介绍了linux服务器显卡崩溃解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 以往研究人员分析客户崩溃引起的孤儿问题,采用终止孤儿方法来实现孤儿的安全清除。文中介绍了分布式系统中远程过程调用的失败语义,重点分析了通过新的动态捆绑器来培养利用孤儿,给出了解决客户服务器崩溃的新途径。
  • 服务器崩溃常见原因

    千次阅读 2019-11-21 10:56:30
    开发过程中会遇到程序崩溃的问题,大多数开发人员会去看日志,根据日志文件来排查崩溃原因,通过debug解决,然而有时程序崩溃时,日志并不能记录,或来不及记录,以下几种引起程序崩溃的原因: 1. 控制台打印日志...

    开发过程中会遇到程序崩溃的问题,大多数开发人员会去看日志,根据日志文件来排查崩溃原因,通过debug解决,然而有时程序崩溃时,日志并不能记录,或来不及记录,以下几种引起程序崩溃的原因:

    1. 控制台打印日志造成:
    部分开发人员习惯在控制台打印日志,最常见的就是打印sql语句,当大量请求到数据库的时候,就会对系统造成一定的压力,特别是批量新增或更新的时候,控制台不断大量的打印日志就会造成系统爆满,垃圾回收机制来不及对其进行垃圾回收,就必然会造成程序宕机。
    解决方案:
    加大内存,关闭控制台日志打印,将日志文件存储到对应日志文件中,或者改变sql语句日志等级;
    set -Xms512m -Xmx4096m -XX:PermSize=512M -XX:MaxNewSize=256m -XX:MaxPermSize=1024m
    注意:最大内存设置不要超过电脑本身内存。
    ** 2. 访问量过大,服务器超载**
    正如每年的双十一,总会有那么一瞬间会提示服务器崩溃,稍后再进之类的,因为服务器请求都是需要排队的,当高并发情况下,队列已满,服务器便会开始丢弃部分请求继续增大网络请求,操作系统TCP协议栈也开始丢弃请求…如此一来便崩掉啦;
    解决方案:
    一定的解决方案就是解决高并发问题,有关高并发问题会另详细说明;以下有一个不错的分析。
    添加链接描述
    3.内存泄漏
    当内存在子程序中被分配时,通常会出现程序从子程序中返回时没有释放内存,导致已分配的内存引用丢失,只要系统在运行状态,进程就会一直使用该内存,造成内存泄漏,服务器崩溃
    4.引用了空对象
    最常见的,数组下标越界
    5.线程死锁
    6.数据库临时表不够用
    临时表即保留查询结果的内存区域,许多数据库临时表数目固定,当临时表数据都被读取后,释放临时表。但是高并发的查询可能耗尽固定的临时表数目,此时其它查询就要排队等候直到有临时表被释放。
    像是网络出错、磁盘已满,系统原因,程序版本不兼容,设置文件有误等都会导致崩溃,很多情况是开发人员考虑不够周全或是不够细心造成的bug引起的崩溃。
    后续更新…

    展开全文
  • 伴随全国各级各类学校延期开学、教育部发出“停课...如何解决服务器过载崩溃、视频卡顿等问题,满足流量激增情况下,线上授课的流畅度、稳定度、清晰度等硬性指标,是在线教育行业必须快速攻克的技术难关。 疫情期间
  • C++程序崩溃解决方案

    千次阅读 2018-11-02 13:24:08
    C++程序崩溃如何进行异常捕获处理?特别是发布版本为Release版本,要想保留现场和复现就更加困难。本文较少几种捕获程序异常定位问题的方案

    C++程序崩溃解决方案


    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    目录

    环境:
    QT版本:5.6.2
    开发环境:VS2013
    系统版本:windows 7 64bit


    前言

    C++程序崩溃如何进行异常捕获处理?特别是发布版本为Release版本,要想保留现场和复现就更加困难。本文较少几种捕获程序异常定位问题的方案。

    1. SetUnhandledExceptionFilter+ MiniDumpWriteDump + PDB解决方案

    1.1 SetUnhandledExceptionFilter简介

    Windows为应用程序提供了一种通过SetUnhandledExceptionFilter函数覆盖默认应用程序“崩溃”处理功能的方法。

    通常,SetUndhandledExceptionFilter函数与崩溃报告一起使用。 能够精确定位引起崩溃的代码行在事后调试中是非常宝贵的。

    参数要求
    最小PC系统Windows XP
    最小服务器系统Windows Server 2003
    头文件WinBase.h (包含在Windows.h)
    LibraryKernel32.lib
    DLLKernel32.dll

    语法:

    
    LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(
      _In_ LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
    );
    

    1.2 MiniDumpWriteDump简介

    MiniDumpWriteDump将用户模式minidump信息写入指定的文件。

    参数要求
    平台Windows
    头文件minidumpapiset.h (包含在Dbghelp.h)
    LibraryDbghelp.lib
    DLLDbghelp.dll; Dbgcore.dll
    发布需求DbgHelp.dll and Dbgcore.dll

    语法:

    BOOL MiniDumpWriteDump(
      HANDLE                            hProcess,
      DWORD                             ProcessId,
      HANDLE                            hFile,
      MINIDUMP_TYPE                     DumpType,
      PMINIDUMP_EXCEPTION_INFORMATION   ExceptionParam,
      PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
      PMINIDUMP_CALLBACK_INFORMATION    CallbackParam
    );
    

    1.3 PDB简介

    如何使QT的Release模式可调试(Windows)

    MSDN : Program Database Files (C++)

    1.4 捕获异常

    1.4.1 pro文件

    win32:LIBS += -lDbgHelp
    
    

    1.4.2 头文件

        #include "Windows.h"
        #include <dbghelp.h>
    

    1.4.3 异常捕获函数

    //异常捕获函数
    long ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
    {
        {
            // 在程序exe的上级目录中创建dmp文件夹
            QDir *dmp = new QDir;
            bool exist = dmp->exists("./dmp");
            if(exist == false)
            {
                dmp->mkdir("./dmp");
            }
        }
    
        QDateTime current_date_time = QDateTime::currentDateTime();
        QString current_date = current_date_time.toString("yyyy_MM_dd_hh_mm_ss");
        QString time =  current_date + ".dmp";
        EXCEPTION_RECORD *record = pException->ExceptionRecord;
        QString errCode(QString::number(record->ExceptionCode, 16));
        QString errAddr(QString::number((uint)record->ExceptionAddress, 16));
        QString errFlag(QString::number(record->ExceptionFlags, 16));
        QString errPara(QString::number(record->NumberParameters, 16));
        qDebug()<< "errCode: "<<errCode;
        qDebug()<< "errAddr: "<<errAddr;
        qDebug()<< "errFlag: "<<errFlag;
        qDebug()<< "errPara: "<<errPara;
    
        //创建 Dump 文件
        HANDLE hDumpFile = CreateFile((LPCWSTR)QString("./dmp/" + time).utf16(),
                                      GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    
        if(hDumpFile != INVALID_HANDLE_VALUE)
        {
            //Dump信息
            MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
            dumpInfo.ExceptionPointers = pException;
            dumpInfo.ThreadId = GetCurrentThreadId();
            dumpInfo.ClientPointers = TRUE;
            //写入Dump文件内容
            MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
            CloseHandle(hDumpFile);
        }
        else
        {
            qDebug()<< "hDumpFile == null";
        }
    
        //这里弹出一个错误对话框并退出程序
        QMessageBox::critical(NULL,QString::fromLocal8Bit("程序崩溃"),
                              QString::fromLocal8Bit("对于发生的错误,表示诚挚的歉意\n错误代码:%1\n错误地址:%2").arg(errCode).arg(errAddr),
                              QMessageBox::Ok);
    
        return EXCEPTION_EXECUTE_HANDLER;
    }
    

    1.4.4 主函数调用

        int main(int argc, char *argv[])
        {
            //注册异常捕获函数
            SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);
            ...
        }
    

    1.5 分析异常

    经过上面的设置可以生成*.dmp文件,结合*.pdb(如何使QT的Release模式可调试(Windows))就可以定位到源码中的函数,乃至于行数。

    1.5.1 解析dmp

    Windows 调试程序 (WinDbg) 可用于调试内核和用户模式代码,分析故障转储并检查 CPU 注册代码执行。

    1.5.1.1 设置符号文件路径

    也就是*.pdb的路径

    在这里插入图片描述

    在这里插入图片描述

    注意事项:

    该PDB必须为编译时生成的PDB,否则会解析不出正确结果。
    也就是说发布二进制时,需要保留一份*.pdb文件
    
    1.5.1.1 打开*.dmp文件
    Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    
    Loading Dump File [C:\Users\Administrator\Desktop\2018_11_01_19_32_09.dmp]
    User Mini Dump File: Only registers, stack and portions of memory are available
    
    Symbol search path is: C:\Users\Administrator\Desktop
    Executable search path is: 
    Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x86 compatible
    Product: WinNt, suite: SingleUserTS
    Machine Name:
    Debug session time: Thu Nov  1 19:32:09.000 2018 (UTC + 8:00)
    System Uptime: not available
    Process Uptime: 0 days 0:00:01.000
    ................................................................
    .....................................................
    This dump file has an exception of interest stored in it.
    The stored exception information can be accessed via .ecxr.
    (be0.ccc): Integer divide-by-zero - code c0000094 (first/second chance not available)
    eax=fffffffd ebx=03331020 ecx=0058eaec edx=77a96c74 esi=03330fe0 edi=0058eb8c
    eip=77a96c74 esp=0058e84c ebp=0058e85c iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    Unable to load image C:\Windows\System32\ntdll.dll, Win32 error 0n2
    *** WARNING: Unable to verify timestamp for ntdll.dll
    *** ERROR: Module load completed but symbols could not be loaded for ntdll.dll
    ntdll+0x46c74:
    77a96c74 c3              ret
    

    1.5.2 结合PDB定位具体函数

    输入命令,等待几秒后会打印出错误信息

    !analyze -v
    

    在这里插入图片描述

    至此,可以准确找到出现问题的函数。

    2. Google Breakpad方案

    Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。

    默认情况下,当崩溃时breakpad会生成一个minidump文件,在不同平台上的实现机制不一样:
    在windows平台上,使用微软提供的 SetUnhandledExceptionFilter() 方法来实现。
    在OS X平台上,通过创建一个线程来监听 Mach Exception port 来实现。
    在Linux平台上,通过设置一个信号处理器来监听 SIGILL SIGSEGV 等异常信号。

    Source Code:

    http://code.google.com/p/google-breakpad/
    

    该方案将在后续文章中详细介绍。


    Reference:
    1.MSDN : SetUnhandledExceptionFilter函数
    2.MSDN : MiniDumpWriteDump函数

    觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
    在这里插入图片描述
    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    展开全文
  • 本文仅仅讨论香港服务器租用或香港服务器托管站点崩溃的几大原因总结。 第一,内存泄漏 C/C++程序还可能产生另一个指针问题:丢失对已分配内存的引用。当内存是在子程序中被分 配时,通常会出现这种...


    在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。本文仅仅讨论香港服务器租用香港服务器托管站点崩溃的几大原因总结。



    第一,内存泄漏

    C/C++程序还可能产生另一个指针问题:丢失对已分配内存的引用。当内存是在子程序中被分 配时,通常会出现这种问题,其结果是程序从子程序中返回时不会释放内存。如此一来,对已分配的内存的引用就会丢失,只要操作系统还在运行中,则进程就会一 直使用该内存。这样的结果是,曾占用更多的内存的程序会降低系统性能,直到机器完全停止工作,才会完全清空内存。


    第二,C指针错误

    用C或C++编写的程序,如Web服务器API模块,有可能导致系统的崩溃,因为只要间接引 用指针(即,访问指向的内存)中出现一个错误,就会导致操作系统终止所有程序。另外,使用了糟糕的C指针的Java模拟量(analog)将访问一个空的 对象引用。Java中的空引用通常不会导致立刻退出JVM,但是前提是程序员能够使用异常处理方法恰当地处理错误。在这方面,Java无需过多的关注,但 使用Java对可靠性进行额外的度量则会对性能产生一些负面影响。


    第三,数据库中的临时表不够用

    许多数据库的临时表(cursor)数目都是固定的,临时表即保留查询结果的内存区域。在临时表中的数据都被读取后,临时表便会被释放,但大量同时进行的查询可能耗尽数目固定的所有临时表。这时,其他的查询就需要列队等候,直到有临时表被释放时才能再继续运行。


    第四,线程死锁

    由多线程带来的性能改善是以可靠性为代价的,主要是因为这样有可能产生线程死锁。线程死锁 时,第一个线程等待第二个线程释放资源,而同时第二个线程又在等待第一个线程释放资源。我们来想像这样一种情形:在人行道上两个人迎面相遇,为了给对方让 道,两人同时向一侧迈出一步,双方无法通过,又同时向另一侧迈出一步,这样还是无法通过。双方都以同样的迈步方式堵住了对方的去路。假设这种情况一直持续 下去,这样就不难理解为何会发生死锁现象了。

    第五,磁盘已满

    导致系统无法正常运行的最可能的原因是磁盘已满。一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带)。

    日志文件会很快用光所有的磁盘空间。Web服务器的日志文件、SQL*Net的日志文件、 JDBC日志文件,以及应用程序服务器日志文件均与内存泄漏有同等的危害。可以采取措施将日志文件保存在与操作系统不同的文件系统中。日志文件系统空间已 满时Web服务器也会被挂起,但机器自身被挂起的几率已大大减低。


    第六,服务器超载

    Netscape Web服务器的每个连接都使用一个线程。Netscape Enterprise Web服务器会在线程用完后挂起,而不为已存在的连接提供任何服务。如果有一种负载分布机制可以检测到服务器没有响应,则该服务器上的负载就可以分布到其 它的Web服务器上,这可能会致使这些服务器一个接一个地用光所有的线程。这样一来,整个服务器组都会被挂起。操作系统级别可能还在不断地接收新的连接, 而应用程序(Web服务器)却无法为这些连接提供服务。用户可以在浏览器状态行上看到connected(已连接)的提示消息,但这以后什么也不会发生。


    总之,还有许多因素也极有可能导致Web香港服务器租用香港服务器托管站点无法工作。有许多种原因可能导致Web站点无法正常工作,这使得系统地检查所有问题变得很困难。
    展开全文
  • 服务器系统备份方案

    千次阅读 2020-02-24 09:27:08
    服务器系统承载着很多应用程序的运行,如果系统遇到崩溃、病毒、无法启动等都会使得应用程序运行中断,最终影响前端的业务系统,所以确保服务器系统的可备份、可还原就显的格外重要。在中小企业中,当系统出现问题时...

    服务器系统备份简介

    服务器系统承载着很多应用程序的运行,如果系统遇到崩溃、病毒、无法启动等都会使得应用程序运行中断,最终影响前端的业务系统,所以确保服务器系统的可备份、可还原就显的格外重要。在中小企业中,当系统出现问题时,如何快速还原服务器系统到正常运行的状态就显现出系统备份与还原的重要性。如果不对系统备份,那么系统有问题只能通过重装系统的方式来恢复系统(也意味着需要重装所有应用程序),这一过程可能会耗几小时到几天时间不等。而备份系统后的还原过程免去了重装的烦恼,仅需要花几十分钟或几分钟时间即可解决问题。

     

     

    传统备份方式的挑战

    市场上的系统备份产品多不胜数,但大多数产品存在如下问题:

    l  速度慢:由于技术上的复杂度,很多产品以备份文件的方式来备份系统(文件级备份:即逐一枚举并备份每一个文件),此方式技术简单,但不管是备份还是还原速度都很慢;

    l  功能单一:很多产品不支持热备份、增量备份、计划任务、版本管理等高级功能,无法满足大多数中小企业的系统备份需求;

    l  还原复杂:很多产品过份依赖第三方PE系统,而没有自己的裸机恢复方案与按时间点进行恢复等功能,最终使还原变的复杂或无法还原。

     

    傲梅备份企业版方案的价值与亮点

    l  速度极快:以扇区级的方式来备份系统和还原系统,速度是文件级备份至少五倍;

    l  支持热备份:无需重启电脑,无需中断系统运行和应用程序运行就能完成系统备份;

    l  无人值守备份:支持定时备份,命令行备份,增量备份,镜像文件版本管理等高级功能,在配置好任务后轻松实现无人值守的系统备份;

    l  异机还原:即使是服务器的主板、CPU等硬件更换,使用异机还原功能,也能在还原系统后让其正常运行;

    l  裸机还原:轻松备份企业版自带创建系统拯救盘的功能,即使系统完全崩溃不可启动也能通过拯救盘来恢复系统,无需依赖任何第三方程序;

     

    支持的系统包含:

    服务器系统系列:Windows Server 2003, Windows Server 2008, Server 2011, Windows Server 2012, Windows Server 2016, Windows Server 2019

    PC系统系列:Windows 10, Windows 8/8.1, Windows 7, Vista, Windows XP

    展开全文
  • 记一次线程爆满导致服务器崩溃的问题排查1. 重启服务器2. 修改最大线程数3. 查找线程最大的java程序4. 导出问题程序的线程日志5. 找到问题代码6. 解决方案 问题介绍: 测试服务器突然无法连接,ssh登录不上。只有...
  • 高并发量服务器性能解决方案

    千次阅读 2017-10-28 08:29:44
    提升高并发量服务器性能解决思路一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的...
  • Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案
  • 由于存在于服务器中的在线数据容易受到各种因素的影响,如计算机病毒,人为误操作,黑客恶意的攻击,电源故障,自然灾害等,从而导致数据的丢失,甚至系统完全崩溃,如何快速地恢复系统,这就需要灾难恢复解决方案。...
  • 服务器意外崩溃重启,Node.js要能够自启动,恢复服务。 二、解决方案 1、三步完成 # 1、创建启动脚本 pm2 startup # 2、上面命令会输出类似如下提示,按照提示执行 [PM2] You have to run this command as ...
  • 这是一个使用处理c ++崩溃并启动Qt应用以将崩溃日志发送回服务器的演示。 大多数代码是从项目中提取的。 该演示包括QtBreakpadDemo出故障,启动QtCrashHandler之后。 相依性 Qt5 breakpad的源文件直接使用。 无需...
  • 推荐这款软件的原因很简单,就是最近用它连接Mysql 8时直接崩溃,通过各种途径终于找到解决方案了。没有了崩溃的bug,才更值得推荐。 下面就来简单了解一下这款软件的功能吧。 软件简介 首先来看连接的操作界面: ...
  • 服务器到手之后,为了可以让自己本地可以连接到阿里云服务器上就做了如下操作: 开放了ssh(port:22)端口:为了远程连接使用。 开放了剩余的其他所有端口:录制教学视频时启动了相关容器,容器的一些固定端口...
  • 公元 2020/04/16 4:38 分,登录线上服务器,执行 top 命令执行,发现已经崩了…查看控制台构建输出日志,发现直接把 CPU 搞崩了...然后看这个莫名其妙的未...
  • 问题 # 导入相关库 import pandas as pd import numpy as np import seaborn as sns import matplotlib.... 解决方案 每次读取100万行数据 df = pd.read_csv('tianchi_mobile_recommend_train_user.csv',nrows=1000000)
  • docker安装6.x版本elasticearch容器: 1.创建启动容器 docker run -di --name=自定义名字 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 elasticsearch:版本号 2.docker ps ...
  • MySQL 面试题

    万次阅读 多人点赞 2019-09-02 16:03:33
    支持崩溃后恢复。 在 MySQL5.1 以及之前的版本,默认的存储引擎是 MyISAM ,但是目前已经不再更新,且它有几个比较关键的缺点: 不支持事务。 使用表级锁,如果数据量大,一个插入操作锁定表,其他请求...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    IE的双边距BUG:块级元素float设置横向margin,ie6显示的margin比设置的较大。 35 HTML与XHTML——二者有什么区别? 35 html常见兼容性问题? 36 对WEB标准以及W3C的理解与认识 36 行内元素有哪些?块级...
  • 升级GLIBC至2.17及系统崩溃解决方案

    千次阅读 2019-08-01 13:49:26
    二、解决升级glic系统崩溃问题 最近研究pytorch模块使用,在服务器下安装pytorch1.1.0,在python中导入pytorch报错: 我的环境:CentOS6.5、conda 4.7.10、Python 3.6.3、pytorch-cpu1.1.0 报错信息: >...
  • Redis面试题集

    千次阅读 多人点赞 2019-09-16 10:19:31
    AOF: AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。 参考资料: Redis持久化方式详解 5. Redis中如何保证缓存数据和...
  • 消息中间件MQ与RabbitMQ面试题(2020最新版)

    万次阅读 多人点赞 2020-03-01 11:11:21
    消息的消费者(consumer) 监听 消息队列,如果队列中有消息,就消费掉,消息被拿走,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失,这里可以设置成手动的ack,但如果设置成...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    沟通 在测试前期与开发沟通 确认测试重点 确认测试的优先级 了解开发人员技术和业务背景 业务水平 技术水平 代码质量 人员流动性 在测试结束 对已发现的bug进行统计 知道高发概率bug 在新项目中要进行重点测试 ...
  • 然后把bug信息上传到服务器,再推送到开发人员的邮箱和微信,好及时响应解决方案。看到网上很多是保存错误信息为TXT文件然后再次启动的时候进行上传,但是这样的话,同步性就差了 。 然后开始进行操作: 1,实现...
  • SpringCloud面试题

    万次阅读 多人点赞 2018-12-12 00:29:07
    SpringCloud是Apache旗下的Spring体系下的微服务解决方案 Dubbo是阿里系的分布式服务治理框架 从技术维度上,其实SpringCloud远远的超过Dubbo,Dubbo本身只是实现了服务治理,而SpringCloud现在以及有21个子项目以...
  • 众所周知系统级崩溃定位不到代码的具体函数,一般都是内存释放时异常,空指针,越界访问问题。再加上苹果应用在切换到后台,杀线程问题,io资源在后台不可以申请问题(当在后台连续断网10分钟,就是定位应用的线程也...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    如果一切正常welcome.cs文件将被编译,编译生成可执行文件Welcome.exe。可以在命令提示符窗口运行可执行文件Welcome.exe,屏幕上出现一行字符提示您输入姓名:请键入你的姓名:输入任意字符并按下回车键,屏幕将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,851
精华内容 33,540
关键字:

服务器崩溃后方案