自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (23)
  • 问答 (1)
  • 收藏
  • 关注

原创 2020社区版IDEA取消绿色波浪线

2020社区版

2020-11-26 11:47:16 1200

转载 C#中Internal关键字的总结

注意:想要彻底把Internal关键字搞清楚,就耐着性子读完。当然了这篇文章只是对其他文章的总结。也算是引用吧。主要还是为了把知识点搞清楚一、进入主题之前先来了解一下,项目、解决方案、程序集、命名空间四个容易混淆的概念。①项目:就是我们开发的一个软件。.NET下,项目有多种类型,如控制台、Windows应用程序、类库、Web应用程序等等。经过编译后,会生成.exe文件和.dll文件。.exe文...

2020-03-26 10:51:01 280

原创 SQL查询表的所有字段和表字段对应的类型

1.查询表的所有字段select syscolumns.name from syscolumns where id=object_id('表名')2.查询表的所有字段+表字段对应的类型select syscolumns.name,systypes.name from syscolumns,systypes where syscolumns.xusertype=systypes.xu...

2020-03-24 16:20:54 2094

原创 SecureCRT+SecureFX 8.5.3 x64下载安装教程及简单使用

目录零、软件介绍一、下载二、安装步骤三、破解教程零、软件介绍 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。 SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VM...

2020-03-04 11:51:59 6665 3

原创 RedHat防火墙

查看防火墙状态service iptables status防火墙为开启状态:防火墙为关闭状态关闭或开启防火墙永久关闭或开启chkconfig iptables onchkconfig iptables off即时生效,重启后失效service iptables startservice iptables stop ...

2020-02-28 13:49:21 357

原创 【亲测有效】2020最新版SQLPrompt安装适用于SQLServer2017

新买了一台电脑,安装了SQLServer2017和VS2019,准备安装SQLPrompt,在CSDN下载了好几个朋友们分享的安装包,花了快100个积分,但是始终无法安装,应该是安装包的版本太低:于是继续寻找更高版本的安装包,始终不行,最后参考了该地址,终于安装成功:https://download.red-gate.com/SQLPromptDownload.exe参考地址来...

2020-01-04 11:07:23 8361 7

原创 VS打开后闪退

情况描述打开VS,打开代码,10s左右VS闪退,再打开再闪退,无法编辑代码可能原因之前没有正常退出VS就关闭电脑,导致文件损坏具体原因可在事件查看器中查看:Win+X V解决办法官网下载VS安装程序,对当前安装的VS进行升级本人安装的是2017社区版,所以下载这个版本进行升级https://visualstudio.microsoft.com/zh-hans/thank-you...

2019-02-25 10:44:14 3421 4

转载 onkeyup事件只能输入数字,字母,下划线等

输入大小写字母、数字、下划线<input type="text" onkeyup="this.value=this.value.replace(/[^\w_]/g,'');"> 输入小写字母、数字、下划线<input type="text" onkeyup="this.value=this.value.replace(/[^a-z0-9_]/g,'');"> 

2018-07-24 14:38:07 3055

原创 TCP/IP协议基础知识

TCP/IP协议定义Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每...

2018-07-20 17:47:07 3089

转载 SQL优化

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id fro...

2018-07-20 11:32:45 106

转载 MVC原理和MVC模式的优缺点

一、MVC原理 百度百科:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。另:MVC是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高...

2018-07-19 21:49:13 7434

转载 递归函数最终会结束,那么这个函数一定(不定项选择)

递归函数最终会结束,那么这个函数一定(不定项选择):1. 使用了局部变量 2. 有一个分支不调用自身3. 使用了全局变量或者使用了一个或多个参数1显然不是,局部变量只在一次调用局部范围有效,出了这次调用的范围就无效了,它不能控制递归的结束。(这个选项是考查局部变量生命周期/有效范围的问题)需要注意的就是局部变量不是局部静态变量。对于2,很自然了,如果没有一个分支不调用自身,递归就不会结束了。(这是...

2018-02-23 16:58:51 5703

原创 两个二进制数异或的结果是多少?

“异或”运算异或,英文为exclusive OR,缩写成xor异或,是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。两个二进制数异或的结果是多少?是这两个二进制数差的绝对值:  a^b = |a-b| (按位相减取绝对值,再按...

2018-02-23 16:35:42 9216

转载 onclick和onclientclick

onclientclick和onclick区别OnClientClick是客户端脚本,一般使用javascript,在客户端,也就是IE中运行,点击后马上执行OnClick是服务器端事件处理函数,使用C#或者vb.net,在服务器端,也就是IIS中运行,点击按钮后,执行postback,之后再运行。 其实有的时候需要客户端和服务端双重校验,为什么这么说呢? 比果说,一个用户名的文本

2017-12-29 10:55:15 483

转载 优化 Markdown 在 Notepad++ 中的使用体验

选择一个强大而好用的文本编辑器,是进行 Web 开发和编程必不可少的一部分,甚至对于通常的写作,一个舒服的文本编辑器也会让你写起文字来觉得优雅而潇洒。Sublime Text 是一款不错的编辑器,简洁且跨平台,但对新手来说配置起来有些麻烦,对于通常使用 Windows 的用户来说,Notepad++ 或许是一个更好的选择。Notepad++(NPP),顾名思义,就是一个加强版的记事本了,虽然只多了

2017-10-09 17:15:38 734

原创 解决Win10下MarkDownPad2不能实时预览的错误

首先提供MarkDownPad2汉化破解版资源下载:链接:http://pan.baidu.com/s/1c2zZLAw 密码:5uvo报错如下:解决办法:安装Awesomium 1.6.6 SDK

2017-10-09 16:27:55 3100

转载 继承和派生

派生类的继承方式总结:继承方式说明public基类的public和protected的成员被派生类继承后,保持原来的状态private基类的public和protected的成员被派生类继承后,变成派生类的private成员protected基类的public和pro

2017-01-20 09:20:10 207

原创 c++中构造函数和析构函数的概念

构造函数1. 对象被创建时,系统自动调用构造函数,构造函数是类中一种特殊的函数成员,主要用来在创建对象时初始化对象的数据成员。2. 构造函数函数名和类名相同,没有返回值。3. 如果类中没有定义构造函数,系统会提供一个默认的构造函数。4. 构造函数可以重载。5. 尽量使用构造函数初始化表来初始化。两点说明:(1)初始化表中的书写顺序不一定是初始化顺序,数据成员先定义先初始化,和书

2017-01-18 15:06:07 626

转载 const和static在c和c++环境下的区别

ConstC中的const,功能比较单一,较容易理解:作用:被修饰的内容不可更改。使用场合: 修饰变量,函数参数,返回值等。(c++中应用场合要丰富的多)特点: 是运行时const,因此不能取代#define用于成为数组长度等需要编译时常量的情况。同时因为是运行时const,可以只定义而不初始化,而在运行时初始化。如 const int iConst;。 另外,在c中,const变

2017-01-18 14:07:17 319

转载 c++面向对象和c面向过程的一些概念

1.面向对象和面向过程的概念面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可。面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。2.举例说明面向过程和面向对象编程象棋系统的实现:(1)首先使用面向过程1、开始游戏,2、黑子先走,3、绘制画面

2017-01-18 14:02:46 4427

Visio培训课程 v1.0.pptx

Visio培训课程 v1.0.pptx

2021-03-20

Python入门指南【高清+中英+目录】

ÃþجºXPython ¤kõU§Ø¬)º¤^¤kƒ'£"ƒ‡§§0 NõPython ¥Ú<58õU§ù¬éÖöݺù€Šóº‚ŒkÏ"ÖL§§\ATŒ±ÖÚ?Python ¬Ú§S§e5Œ±lPython ¥ëÃþ ¥?˜ÚÆSPythonE,õC¥Ú¬"

2017-12-21

Python基础教程(第二版)

《Python基础教程(第2版.修订版)》包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识。最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了几个具有实际意义的Python项目的开发过程。 《Python基础教程(第2版.修订版)》内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的Python开发人员阅读参考。

2017-12-21

《Python标准库》中文版【高清】

本书由资深Python专家亲自执笔,Python语言的核心开发人员作序推荐,权威性毋庸置疑。 对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必备的工具书!本书以案例驱动的方式讲解了标准库中一百多个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解(一个简单的示例比一份手册文档更有帮助),为Python程序员熟练掌握和使用这些模块提供了绝佳指导。 全书一共19章,系统而全面地对Python标准库中的一百多个模块进行了生动的讲解。这些模块主要包括:文本处理工具模块、与数据结构相关的模块、与算法有关的模块、管理日期和时间值的模块、用于数学计算的模块、管理文件系统的模块、用于数据存储与交换的模块、用于数据压缩与归档的模块、用于加密的模块、与进程和线程相关的模块、与网络通信和Email相关的模块、构建模块、支持处理多种自然语言和文化设置的模块、开发工具模块、与运行时特性相关的模块,等等。

2017-12-21

Java基础入门编程详解【带目录】

第1篇 面向对象基础 第0章 创建Java开发环境 第1章 对象和类 第2章 对象和类的操作 第3章 访问控制 第2篇 类的衍生 第4章 继承 第5章 接口 第6章 封装类 第3篇 异常处理与JDK类库 第7章 异常处理 第8章 JDK类库 第9章 文件I/O操作 第4篇 典型案例 第10章 电话本程序 第11章 学生管理程序 第12章 网上购物程序 附录A Java编程基础

2017-12-21

Java从入门到精通

第1篇 基础知识 第1章 初识Java 3 第2章 熟悉Eclipse开发工具 17 第3章 Java语言基础 33 第4章 流程控制 55 第5章 字符串 69 第6章 数组 93 第7章 类和对象 107 第8章 包装类 129 第9章 数字处理类 143 第2篇 核心技术 第10章 接口、继承与多态 161 第11章 类的高级特性 181 第12章 异常处理 199 第13章 Swing程序设计 209 第14章 集合类 241 第15章 I/O输入输出 251 第16章 反射 269 第17章 枚举类型与泛型 285 第18章 多线程 303 第19章 网络通信 323 第20章 数据库操作 337 第3篇 高级应用 第21章 Swing表格组件 357 第22章 Swing树组件 373 第23章 Swing其他高级组件 387 第24章 高级布局管理器 411 第25章 高级事件处理 429 第26章 AWT绘图与音频播放 443 第27章 打印技术 463 第4篇 项目实战 第28章 企业进销存管理系统 477

2017-12-21

教你理解复杂的C-C++声明

C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地 理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C++声明并不是好的编程风格;我这里仅仅是教你如何去理解这些声明。注 意:为了保证能够在同一行上显示代码和相关注释,本文最好在至少1024x768分辨率的显示器上阅读。

2017-12-20

计算机的心智操作系统之哲学原理(进程线程基础知识)

前言   第一篇 基础原理篇   第1章 操作系统导论   引子:智者的挑战   1.1 人造与神造   1.2 程序是如何运行的   1.3 什么是操作系统   1.4 魔术与管理   1.5 用户程序与操作系统   1.6 操作系统的范畴   1.7 为什么学习操作系统   思考题      第2章 操作系统历史   引子:不能承受之真   2.1 第一阶段:状态机操作系统(1940年以前)   2.2 第二阶段:单一操作员单一控制端操作系统(20世纪40年代)   2.3 第三阶段:批处理操作系统(20世纪50年代)   2.4 第四代:多道批处理操作系统(20世纪60年代)   2.5 第五代之一:分时操作系统(20世纪70年代)   2.6 第五代之二:实时操作系统   2.7 第六代:现代操作系统(1980年以后)   2.8 操作系统的演变过程   2.9 操作系统的未来发展趋势   2.10 讨论:操作系统虚拟化和虚拟化的操作系统   思考题      第3章 操作系统基本概念   引子:软件师的尴尬   3.1 计算机硬件基本知识   3.2 抽象   3.3 内核态和用户态   3.4 操作系统结构   3.5 进程、内存和文件   3.6 系统调用   3.7 壳   思考题      第二篇 进程原理篇   第4章 进程   引子:牛顿的困惑   4.1 进程概论   4.2 进程模型   4.3 多道编程的好处   4.4 进程的产生与消失   4.5 进程的层次结构   4.6 进程的状态   4.7 进程与地址空间   4.8 进程管理   4.9 进程的缺陷   思考题      第5章 进程调度   引子:恐怖分子的调度   5.1 进程调度的定义   5.2 进程调度的目标   5.3 先来先服务调度算法   5.4 时间片轮转算法   5.5 短任务优先算法   5.6 优先级调度算法   5.7 混合调度算法   5.8 其他调度算法   5.9 实时调度算法   5.10 进程调度的过程   5.11 高级议题:调度异常之优先级倒挂   思考题      第6章 进程通信   引子:孤独爆破手的自白   6.1 为什么要通信   6.2 进程对白:管道、记名管道、套接字   6.3 进程电报:信号   6.4 进程旗语:信号量   6.5 进程拥抱:共享内存   6.6 信件发送:消息队列   6.7 其他通信机制   思考题      第三篇 线程原理篇   第7章 线程   引子:亚历山大的分身术   7.1 进程的分身术——线程   7.2 线程管理   7.3 线程模型的实现   7.4 现代操作系统的线程实现模型   7.5 多线程的关系   7.6 讨论:从用户态进入内核态   7.7 讨论:线程的困惑——确定性与非确定性   思考题      第8章 线程同步   引子:滑铁卢的同步   8.1 为什么要同步   8.2 线程同步的目的   8.3 锁的进化:金鱼生存   8.4 睡觉与叫醒:生产者与消费者问题   8.5 信号量   8.6 锁、睡觉与叫醒、信号量   8.7 管程   8.8 消息传递   8.9 栅栏   思考题      第9章 死锁应对之哲学原理   引子:迷雾笼罩的加拿大   9.1 为什么会发生死锁   9.2 死锁的描述   9.3 死锁的4个必要条件   9.4 哲学家就餐问题   9.5 死锁的应对   9.6 消除死锁的必要条件   9.7 银行家算法:冒险的代价   9.8 哲学家就餐问题之解   9.9 讨论:死锁的思考——综合治理   9.10 讨论:死锁、活锁与饥饿   思考题      第10章 锁的实现   引子:高登绳结   10.1 以中断启用与禁止来实现锁   10.2 以测试与设置指令来实现锁   10.3 以非繁忙等待、中断启用与禁止来实现锁   10.4 以最少繁忙等待、测试与设置来实现锁   10.5 中断禁止、测试与设置   思考题      第四篇 内存原理篇   第11章 基本内存管理   引子:让别人无路可走   11.1 内存管理的环境   11.2 内存管理的目标   11.3 虚拟内存的概念   11.4 操作系统在内存中的位置   11.5 单道编程的内存管理   11.6 多道编程的内存管理   11.7 闲置空间管理   思考题      第12章 页式内存管理   引子:虚拟概念的变现   12.1 基址极限管理模式的问题   12.2 分页内存管理   12.3 分页系统的优缺点   12.4 翻译速度   12.5 缺页中断处理   12.6 锁住页面   12.7 页面尺寸   12.8 内存抖动   思考题      第13章 页面更换算法   引子:黑洞理论的替换   13.1 页面需要更换   13.2 页面更换的目标   13.3 随机更换算法   13.4 先进先出算法   13.5 第二次机会算法   13.6 时钟算法   13.7 最优更换算法   13.8 NRU算法   13.9 LRU算法   13.10 工作集算法   13.11 工作集时钟算法   13.12 页面替换策略   思考题      第14章 段式内存管理   引子:否定之否定   14.1 分页系统的缺点   14.2 分段管理系统   14.3 分段的优缺点   14.4 段页式内存管理   14.5 段号是否占用寻址字位   14.6 讨论:否定之否定的嵌套——纯粹分段与逻辑分段、分页与段页   思考题      第五篇 文件原理篇   第15章 磁盘操作   引子:EMC——从不可能到可能   15.1 磁盘组织与管理   15.2 磁盘的结构   15.3 盘面的结构   15.4 磁盘驱动器的访问速度   15.5 操作系统界面   15.6 磁盘调度算法   15.7 讨论:固态盘   15.8 讨论:智能磁盘系统   思考题      第16章 文件系统   引子:掩饰的极致   16.1 为什么需要文件系统   16.2 文件系统   16.3 文件系统的目标   16.4 文件的基本知识   16.5 从用户角度看文件系统   16.6 地址独立的实现机制:文件夹   16.7 文件系统调用   16.8 内存映射的文件访问   思考题   第17 章文件系统实现   引子:成功中的失败   17.1 文件系统的布局   17.2 文件的实现   17.3 目录实现:地址独立的实现   17.4 闲置空间管理   思考题      第18章 文件系统性能   引子:从不可能到可能   18.1 文件授权管理   18.2 主动控制:访问控制表   18.3 能力表   18.4 访问控制的实施   18.5 其他文件安全措施   18.6 文件系统性能   18.7 文件系统效率性能   18.8 文件系统设计分析:日志结构的文件系统   18.9 海量数据文件系统   思考题      第六篇 I/O原理篇   第19章 输入输出   引子:约翰逊的输出——从没有到爆发   19.1 输入输出   19.2 输入输出的目的   19.3 输入输出硬件   19.4 I/O软件   19.5 I/O软件分层   思考题      第七篇 多核原理篇   第20章 多核结构与内存   引子:不能承受之热   20.1 以量取胜   20.2 多核基本概念   20.3 多核的内存结构   20.4 对称多处理器计算机的启动过程   20.5 多处理器之间的通信   20.6 SMP缓存一致性   20.7 多处理器、超线程和多核的比较   思考题      第21章 多核环境下的进程同步与调度   引子:“多核”帝国的陨落   21.1 多核环境下操作系统的修正   21.2 多核环境下的进程同步与调度   21.3 多核进程同步   21.4 硬件原子操作   21.5 总线锁   21.6 多核环境下的软件同步原语   21.7 旋锁   21.8 其他同步原语   21.9 多核环境下的进程调度   21.10 多核环境下的能耗管理   21.11 讨论:多核系统的性能   思考题      第八篇 操作系统设计篇   第22章 操作系统设计之哲学原理   引子:残缺心智的胜利   22.1 操作系统设计的追求   22.2 操作系统设计的第1条哲学原理:层次架构   22.3 操作系统设计的第2条哲学原理:没有对错   22.4 操作系统设计的第3条哲学原理:懒人哲学   22.5 操作系统设计的第4条哲学原理:让困于人   22.6 操作系统设计的第5条哲学原理:留有余地   22.7 操作系统设计的第6条哲学原理:子虚乌有——海市蜃楼之美   22.8 操作系统设计的第7条哲学原理:时空转换——沧海桑田之变   22.9 操作系统设计的第8条哲学原理:策机分离与权利分离   22.10 操作系统设计的第9条哲学原理:简单为美——求于至简,归于永恒   22.11 操作系统设计的第10条哲学原理:适可而止   思考题

2017-12-20

C语言程序设计(第四版)_谭浩强

在这本书中,保留了《C程序设计》一书的特点:体系合理、逻辑清楚、例题丰富、通俗易懂。同时又根据C语言新标准的规定,对该书进行了改写,使之符合当前的需要。 程序设计是一门实践性很强的课程,不可能只靠听课和看书就能掌握C语言程序设计。应当十分重视自己动手编写程序和上机运行程序。上机的时间愈多愈好。 为了帮助读者学习本书,作者还编写了一本《C语言程序设计题解与上机指导》,提供本书中各章习题的参考答案以及上机实习指导。 本书是高职高专学生学习C语言程序设计的理想教材。凡具有计算机初步知识的读者都能读懂本书。本书也可作为C语言培训教材,也可供自学参考。

2017-12-20

winfrom Timer控件实现时间浮动显示【源码】

winfrom Timer控件实现时间浮动显示【源码】,适用学习。

2017-12-11

C# Winfrom开发实例教程【快速入门】

作为项目深入开发的基础平台,基于.NET FrameWork 2.0平台进行的C# Windows程序设计越来越受到各高校和培训机构的重视。《C# WinForm实践开发教程》针对计算机及软件工程专业的教学特点,坚持实用技术和实际案例相结合的原则,注重操作能力和实践技能的培养,以案例与核心知识讲解为主线,详尽介绍了C# Windows程序设计所需要的基本理论知识。《C# WinForm实践开发教程》内容包括Windows编程基础、WinForm高级控件、文件处理技术、GDI+图形图像编程技术、ADO.NET数据库开发技术、水晶报表技术、CS网络编程技术、WinForm中的打包和部署及WinForm实训。同时为配合《C# WinForm实践开发教程》的课堂内、外授课,还编写了《C# WinForm实践开发教程》的配套实训教程《C# WinForm上机实训指导》,对《C# WinForm实践开发教程》内容进行了更深入的开发和实践操作。 《C# WinForm实践开发教程》实用性和操作性并重,且充分考虑到当下计算机及软件工程专业教学的特点和社会需求,注重学生实践能力的培养。《C# WinForm实践开发教程》不但可作为高等院校计算机应用、信息管理、电子商务、软件技术等各专业的教材,也可作为企业人员在职培训以及软件从业人员提高专业技术水平的参考用书,对于广大C# Windows程序设计自学者也是一本有益的读物。

2017-12-11

Linux C聊天室项目【源码】+【说明文档】

客户端,采用多线程。一个接收服务器消息,一个发送消息给服务器。 服务器,采用select()进行IO复用。 编译文件是Makefile。 (1)用户登录: 【1】client端接收用户名和密码->存于结构体中->将结构体发送给server端。 【2】server端接收client发送的结构体->打开存储用户名密码的文件->文件写入链表中->遍历链表验证用户信息。 【3】server端验证正确发送“登陆成功”消息,错误发回“登陆失败”消息。client端接收,“登陆成功”则进入聊天,“登陆失败”则跳出。 【4】若验证成功,server端产生一个新的套接字newfd,将它与用户名封装于同一个结构体中,存储在线用户的信息。 消息、存储在线用户信息结构体: typedef struct message { int type; //服务器用于判断该执行的功能 int fd; int mode; //标志位,表示用户的发言权限,1为正常,0为禁言 char name[NAMELEN]; char mima[NAMELEN]; char from[20]; char to[20]; //聊天时的收信人 char file_name[20]; //发送文件时的文件名 char mtext[100]; //聊天时发送的消息内容 struct message *next; }Mess; (2)一对多聊天: 【1】client端发送欲发送的信息给server端。 【2】server端遍历在线人信息链表,找到每个在线人的套接字描述符,将消息发送给链表中的每个人。 【3】可以通过输入“:)”, “:(”, “bye”来发送笑脸,悲伤脸和退出聊天;检测敏感词汇“fuck”、“shit”,禁止发送。 (3)一对一聊天: 【1】client端发送欲发送的信息和信息的接收者给server端。 【2】server端根据收到的接收者名字在在线人链表中查找该接收者的套接字描述符,找到后就将消息发送给该接收者。 【3】可以通过输入“:)”, “:(”, “bye”来发送笑脸,悲伤脸和退出聊天;检测敏感词汇“fuck”、“shit”,禁止发送。 (4)文件传输 【1】client端发送预发送的文件名和接收者名字到server端。 先打开(不存在则创建)一个文件,将文件内容读到缓冲区buffer,再将buffer的内容复制到结构体Mess中,最后将结构体发送给server端。 【2】server端先将接收到的文件重命名(因为相同文件目录下不能存在同名文件),再将收到的文件和新的文件名一同放入tab1中(并且在tab1开头写“#”)发送给client端。 【3】当client端收到以“#”开头的消息,执行文件接收,先创建一个文件,再写入相应内容。 (5)管理员模式 【1】禁言 【2】解禁

2017-12-11

C# Winfrom计算器

看电子书自学了一星期winform,自己琢磨出来的计算器,同样需要学习winform的童鞋可以参考。因为本人实属菜鸟,所以代码肯定存在不完善的地方,敬请见谅。纯本人手写代码,真正原创。

2017-12-01

JAVA入门到精通

《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。全书分为28章,包括初识Java,熟悉Eclipse开发工具,Java语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O(输入/输出),反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。

2017-11-15

Linux聊天室项目含说明文档【适合学习】

基于Linux的聊天室项目,实现账号注册登录以及聊天,适合学习。

2017-10-27

Markdown基础教程【MD格式文件】

Markdown基础教程【MD格式文件】,完全手打版本,借助MarkDownPad2,可以十分方便学习MarkDown语法。

2017-10-11

ILSpy_Master_2.1.0.1603_RTW_Binaries

ILSpy_Master_2.1.0.1603_RTW_Binaries反编译软件,免安装版。

2017-10-11

SQL Prompt破解版【绝对可用】

SQL Server数据库辅助工具,内附破解工具,亲测可用,方便经常使用数据库查询语句的你。

2017-10-10

MarkDownPad2汉化破解【绝对可用】

MarkDownPad2汉化破解软件,内含破解教程和破解工具,win10使用需要安装Awesomium 1.6.6 SDK。

2017-10-10

C++实现的职工管理系统

用C++的容器和文件实现的职工管理系统

2017-02-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除