自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

转载 为什么很多Android通信应用每隔一段时间需要向服务器发送心跳包

本文原文由作者“张小方”原创发布于“高性能服务器开发”微信公众号,原题《心跳包机制设计详解》。考虑以下两种典型的即时通讯网络层问题情型:1)情形一:一个客户端连接服务器以后,如果长期没有和服务器有数据来往,可能会被防火墙程序关闭连接,有时候我们并不想要被关闭连接。例如,对于一个即时通讯软件来说,如果服务器没有消息时,我们确实不会和服务器有任何数据交换,但是如果连接被关闭了,有新消息来时,我们再也没法收到了,这就违背了“即时通讯”的设计要求。2)情形二:通常情况下,服务器与某个客户端一般不是位于同

2020-08-20 18:33:27 641

转载 Android休眠唤醒、AlarmManager相关

Android手机有两个处理器,一个叫ApplicationProcessor(AP),一个叫BasebandProcessor(BP)。AP是ARM架构的处理器,用于运行Linux+Android系统;BP用于运行实时操作系统(RTOS),通讯协议栈运行于BP的RTOS之上。非通话时间,BP的能耗基本上在5mA左右,而AP只要处于非休眠状态,能耗至少在50mA以上,执行图形运算时会更高。另外LCD工作时功耗在100mA左右,WIFI也在100mA左右。一般手机待机时,AP、LCD、WIFI均进入休眠...

2020-08-20 17:46:17 864

原创 virtualbox 启动centos时报Failed to load SELinux policy. Freezing一直在开机界面解决办法

本人有一次安装软件失败,再次重启centos时报Failed to load SELinux policy. Freezing,然后一直在系统装载这是因为selinux设置不合理或者安装其他软件失败导致。解决办法:1. 在开机界面选择启动的内核时,选择完毕后按e建进入编辑界面。2. 找到linux16 那一行,在language 后面 也就是LANG=zh_CN.UTF-8,加上空格,再加上selinux=0。3. 按 ctrl + x 启动,此时可以正常启动登录界面。4. 登录后,需要

2020-06-27 11:37:04 1260

原创 linux中文件、目录的权限解析

1. 对于文件:-rwxr-x---第一个符号-代表这是一个文件而不是其他内容。后面紧跟着三个符号:rwx,表示这个文件的所有者拥有的权限:r代表可读、w代表可写、x代表可执行。再后面紧跟着三个符号:r-x,表示同一个用户组中的其他用户对该文件的权限:r代表可读、-代表不可写、x代表可执行。再后面紧跟着三个符号:---,表示其他用户组中的用户对该文件的权限:-代表不可读、-代表不可写、-代表不可执行。2. 对于目录:drwxr-xr--第一个符号d代表这是一个目录而不是其他内

2020-06-20 15:14:31 3002

转载 Android的res与assets资源的使用

Android应用可以将资源保存在两个目录:res和assets目录。其中res目录只能将资源存在相应的目录中,如res/layout、res/values等,不能直接将资源存储在res目录里。assets目录中的资源可以任意存放,也可以建立任意的子目录。他们的主要区别如下:1.资源的引用方式不同res目录中的所用资源都会在R类的相应子类中生成对应的int类型变量,在使用时需要引用:R.s

2017-09-17 12:39:08 1215

原创 Android系统自带主题初探

Android系统有很多自带的主题,而且,随着Androi版本的不断更新,系统的默认主题也在不断的变化,这里就简要介绍一下5.0系统的主题。1. 系统自带的主题那么系统自带的主题有哪些呢,在工程目录\frameworks\base\core\res\res\values下,我们可以看到以下文件:这就是android定义各种风格的文件了,其中themes.xml主要定义低版本的风

2017-08-28 20:43:52 2451

原创 Android:将TextView设置为跑马灯效果

Android:将TextView设置为跑马灯效果

2017-07-01 15:57:17 514

原创 Java语言的跨平台可移植特性

我们说一种语言是跨平台可移植的,就是说用这种语言编写的程序,无论放到哪个硬件或者软件平台上都是可以正确运行的。而Java语言作为一种典型的跨平台语言,其平台可移植性为我们省了很多麻烦,但是Java语言的平台可移植性是怎么实现的呢?        这就需要提到Java虚拟机——JVM。JVM是在真实机器中用软件模拟实现的一种想象的机器。这么说吧,JVM就是在你的电脑系统上用软件重新模拟了

2017-06-16 20:45:53 1400

原创 改变窗口所在的进程:android:process属性解析

android:process

2016-06-13 22:43:02 439

原创 android开发之——设置TextView文本为跑马灯效果

android中TextView设置为跑马灯效果

2015-08-30 12:47:22 1170

原创 C++成员对齐方式探讨

关于C++中结构体成员对齐的一点探讨。

2014-04-20 17:44:29 1047

原创 C++中引用、指针的指针、指针的引用解析

对C++指针和引用的一点理解,C++初学者及对指针的引用还有不解的同学可以看看。

2014-04-15 14:55:15 1758 4

原创 利用Javascript实时显示系统时间

首先说,显示的时间是客户端的时间而不是服务器端的时间,原因的话相信大家都知道。这里需要调用一个方法:setInterval方法。该方法是JS内置方法,用来循环定时,可以直接调用。setInterval方法的声明:setInterval(循环执行语句,循环的时间间隔);下面来看实现函数:  <!-- function showTime()

2014-01-10 21:47:10 854

原创 C#中的扩展方法

C#中的扩展方法用来为现有类型添加方法,以扩展现有的类型,这些类型可以是基本的数据类型(如int、string等),也可以是自己定义的类型。扩展方法是通过指定关键字this修饰方法的第一个参数而声明的。扩展方法只可以声明在静态类中。以下为扩展基本类型string代码:public static class Extensions{ public static int Te

2013-11-14 15:17:09 555

转载 线程与进程的区别

1.线程的概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个

2013-10-06 10:27:24 534

转载 C++中类的静态数据成员解析

静态数据成员:下面看一个例子:#include class  Point{public:    void output()    {    }    static void init()    {      } };void main( void ){ Point pt; pt.init(); pt.output();  }

2013-09-09 16:31:53 555

原创 C# 向SQL数据库中存储图片的方法

向数据库中存储图片的方法有两种:1.将图片转换成二进制的形式存储到数据库2.将图片的路径存储到数据库中,用时通过路径找到图片下面分别介绍这两种方法1.将图片转换成二进制形式存储首先,在sql数据库中建立一个表,有两个字段:ID、Image,其中ID为主键,Image的存储类型为Image类型。单击button1按钮,实现图片存储:private void button1

2013-07-25 15:21:33 2018

原创 C# 怎样截取系统向应用程序发送的消息

众所周知,windows会为每一个应用程序创建一个消息队列,通过向应用程序发送消息告知应用程序用户做了哪些操作,那么如果我想截取这些消息进行重定义,该怎么做呢?这里有两种方法:1.重写窗体的WndProc方法,实现如下:public partial class Form5 : Form { public Form5() {

2013-07-23 10:51:48 964

原创 C# 如何获取弹出对话框的返回值

众所周知,弹出对话框可以用MessageBox.Show()方法,但是怎样获取用户到底按了哪个键呢?用DialogResult方法,举例:关闭按钮退出程序:private void button3_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show(t

2013-07-20 21:45:55 6637

原创 C# 设计当得到鼠标焦点后自动放大的button按钮

设计原理:当得到鼠标的焦点后,按钮的长和宽会增加,当鼠标经过后,将按钮的长和宽修改过来。还要用到button按钮的Location属性。步骤如下:1.在窗体的Designer.cs文件中写入以下两行程序: this.button1.MouseEnter += new System.EventHandler(button1_MouseEnter); this.button1.Mo

2013-07-20 13:42:31 1771

转载 windows 消息代码大全

windows消息代码WM_NULL =$0000 // WM_CREATE =$0001 //应用程序创建一个窗口 WM_DESTROY = $0002 //一个窗口被销毁 WM_MOVE = $0003 //移动一个窗口 WM_SIZE= $0005 //改变一个窗口的大小 WM_ACTIVATE= $0006 //一个窗口被激活或失去激活状态; WM_SETFOC

2013-07-18 20:42:45 1586

原创 C# 如何让TextBox只允许输入数字

首先,在窗体.Designer.cs中写入下面一行程序:this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(textBox1_KeyPress);然后,在窗体代码中写入以下程序:private void textBox1_KeyPress(object sender,KeyPressEven

2013-07-18 20:00:29 1132

原创 C# 用鼠标拖动无边框窗体

首先,在程序.Designer.cs中添加以下两句: this.MouseDown += new System.Windows.Forms.MouseEventHandler(Form1_MouseDown);this.MouseMove += new System.Windows.Forms.MouseEventHandler(Form1_MouseMove);然后在主程序c

2013-07-18 14:29:00 839

转载 VS2010启动自带的SQL 2008 Express的方法

安装vs2010后 ,由于vs2010自带sql2008是简化版的Express版,所以不能向其直接添加SQL Server Management Studio,但如果全新安装,又会多一个数据库实例,看着不爽,有没有好的解决方法呢?答案是肯定的。 解决方案如下:先决条件:  1 SQLManagementStudio_x86_CHS(196M)  2 WindowsXP-KB926

2013-07-15 17:06:49 1136

原创 C#中重载方法与重写方法的区别

在C#面向对象编程中,重写方法和重载方法是两个重要的概念,但我们有时会混淆这些概念,甚至一些参考书和网络上都弄错,现在对这两种概念澄清一下。1.重载方法在C#中,重载方法是指在类中有两个或两个以上的方法,但各个方法的参数类型、参数个数或顺序不同,例如下面类中定义了add方法并重载:class Addition { public int add(int x)

2013-07-14 15:39:32 1208

原创 C#实现冒泡排序与插入排序

1.冒泡排序排序原则:设数组的长度为n,则要进行n-1趟排序,每次排序都会把最大的数推向最后。如果在一趟排序中没有元素移动,则排序方法:在第 i 趟排序中,对前 n-i+1 个元素进行排序:从左边开始每两个元素顺序进行比较,如果右边的元素比左边大,则交换两者的位置。具体实现如下:

2013-07-11 16:20:47 1074

原创 C#中如何删除字符串中任意位置的特定的字符

在C#中,删除字符串时经常用到string类的Remove方法,但是这一方法只能从字符串的指定位置开始删除,不能从字符串的任意位置删除特定字符。那么怎样实现删除字符串的任意位置的特定字符呢?可以采用以下方法:采用string类的Replace方法将特定的字符串替换为空字符串“”就可以了。

2013-07-09 20:22:29 5121

原创 C#中Path中的@的含义

在C#中,字符串前面加上@表示字符串中的转义字符将不被处理。例如:Path=“C:\\box.txt”和Path=@"C:\box.txt"是一样的。

2013-07-09 14:25:05 713

原创 C++中引用与指针的区别

1.引用必须在定义时就要初始化,而指针不需要。例如:int a=0;int &b=a;int *ptr;2.引用不占用内存空间,它只是变量的别名而已,而指针是占用内存空间的。在C++中没有取引用地址的说法。

2013-07-04 09:44:36 454

原创 C++ 基类和派生类之间构造函数的调用

在用派生类实例化一个对象时,首先要调用基类的构造函数,然后再调用派生类的构造函数。例如下面的基类:class Animal{public:Animal(){cout<<"Animal";}};派生类:class Fish:public Animal{public:Fish(){cout<<"Fish";}};如果实例化一个

2013-07-03 10:09:56 1089

原创 C++ 定义类时public、private、protected成员的区别

1.public这个好说,如果一个成员被定义为public,则该成员对于该类、该类的对象、继承类、继承类的对象都是可见的。2.private如果一个成员被定义为private,则该成员只是对于该类可见,对于该类的对象、继承类、继承类的对象都是不可见的,即不可直接访问的。3.protected如果一个成员被定义为protected,则该成员对于该类、继承类是可见的,对于该

2013-07-02 23:57:54 1704

原创 C#中定义类时的数据初始化

初学者在学习类的定义时,对类的构造函数往往不理解,其实这很简单。在定义类时,往往有很多数据成员,例如下面的类:class Point{private int x;private int y;}该类定义了两个整形变量:x,y。但在我们调用该类时,希望x,y能有一个默认值,该怎么做呢?有人会这样做:class Point{private int x=0;

2013-07-02 12:43:28 1591 1

原创 C# WinForm应用程序创建启动界面

启动界面只不过是工程中的另一个窗体而已,下面说一下怎么创建启动窗体。首先给工程添加一个新窗体,将其StartPosition属性设置为CenterScreen,将Text属性设置为空,把ControlBox属性设置为false。好了,现在的窗体是一个空窗体,可以在里面编辑内容了。控制启动界面显示的时间:用定时器实现,这个很简单,就不多说了,在Timer控件的Tick事件中写下以下代码:

2013-06-18 11:16:23 4441

原创 C# 将文本Text属性转换为数值形式

很简单,可以用Parse方法,把控件的Text属性转换为数值形式,即可在计算中使用该数值。例如,为了把文本转换为整数值,使用int.Parse方法;为了转换为小数,使用decimal.Prase方法。举例:int number=int.Parse(textBox1.Text);

2013-06-13 14:00:25 7170

原创 C#线程中的等待与阻塞

在C#多个线程运行的过程中,会遇到先运行哪个线程和后运行哪个线程的问题,这需要用到ManualResetEvent类。ManualResetEvent类允许不同线程通过互发信号和等待彼此的信号来达到线程同步的目的。它有三个重要的方法:Reset、Set和WaitOne。首先要初始化一个ManualResetEvent类,可定义如下:private ManaulResetEvent

2013-06-12 15:34:53 10441 1

空空如也

空空如也

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

TA关注的人

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