自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

转载 linux网络编程之shutdown() 与 close()函数详解

1.close()函数#include<unistd.h>int close(int sockfd);     //返回成功为0,出错为-1.   close 一个套接字的默认行为是把套接字标记为已关闭,然后立即返回到调用进程,该套接字描述符不能再由调用进程使用,也就是说它不能再作为read或write的第一个参数,然而TCP将尝试发送已排队等待发送到对端的任何数据,发送完...

2018-08-31 12:29:03 1501

转载 send 和recv详解

int send( SOCKET s,      const char FAR *buf,      int len,      int flags );  不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一...

2018-08-29 12:19:19 22828

转载 C#的枚举数(Enumerator)和可枚举类型(Enumerable)

数组可以被foreach语句遍历数组中的元素,原因是数组可以按需提供一个叫做枚举数(enumerator)的对象.枚举数可以依次返回请求的数组的元素. 对于有枚举数的类型而言,必须有一个方法来获取它们.在.NET中获取一个对象枚举数的标准用法是调用对象的GetEnumerator方法.实现GetEnumerator方法的类型叫做可枚举类型(enumerable),数组就是可枚举类型. 要注意枚...

2018-08-29 09:09:18 476

转载 C和C++中全局变量,局部变量,静态变量和常量

最近在Leecode上见到很多关于静态变量,常量,全局变量等相关的题,于是结合一些Leecode例题和《C++编程思想》整理了这篇博客,详细解释了下它们的区别和用法。 1. 全局变量    全局变量是在所有函数体的外部定义的,程序的所有部分(其他文件的代码)都可以使用。全局变量不受作用域的影响。全局变量的生命周期一直到程序的结束,全局变量是静态存储方式。如果在一个文件中使用exte...

2018-08-28 22:57:12 391

转载 C++中不给变量赋初值则它的默认值为多少?

局部变量是所谓Auto 变量(包括函数参数)即在函数内部定义的,非static 定义的局部变量。Auto 变量的值是程序加载时分配内存的遗留数据,然后程序启动过程中,也会有一些数据,和函数返回地址占用这些内存,并遗留下来,最后才是程序代码里的Auto 变量遗留的值,也可能是函数返回地址的遗留。注意static 定义的是局部可见的的全局变量。初始值不确定。真正的全局变量(没有static的)初...

2018-08-28 22:56:08 5049

转载 关于linux下printf函数输出不及时的解决

在linux系统下,printf函数是行缓冲式的输出,当printf遇到\n时,或者缓冲区满时,才会将缓冲区里的内容刷新到标准输出(stdout).因此, printf("p"); 等语句的显示不能立刻显示在屏幕上,但是printf("p\n"); 可以.为了解决这个问题可以通过:fflush(stdout);解决,即变成:printf("p");fflush(stdout);问题可以得...

2018-08-27 21:51:31 2548

转载 Unix/Linux中的read和write函数

文件描述符  对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或create返回的文件描述符表示该文件,将其作为参数传给read或write函数。write函数   write函数定义如下:#include <unistd>ssize_t ...

2018-08-26 23:45:25 344

转载 SQL中select与set的区别

下表列出 SET 与 SELECT 的区别  SELECT SET 同时对多个变量同时赋值时 支持 不支持 表达式返回多个值时 将返回的最后一个值赋给变量 出错 表达式未返回值时 变量保持原值 变量被赋null值 (1).同时对多个变量同时赋值时declare @a varchar(128), @b varchar(128)...

2018-08-25 17:19:51 9118

转载 SQL索引详解

 SQL中的索引分为两种,一种为聚集索引和非聚集索引,下面介绍两者的异同。 一、聚集索引与非聚集索引:  1、聚集索引:  聚集索引的意思可以理解为顺序排列,比如一个主键自增的表即为聚集索引,即id为1的存在于第一条,id为2的存在于第二条...假使数据库中是使用数组来存放的这张表中的数据,那么如果我需要查找第100条,那么直接第一条数据的地址加上100即为第一百条的地址,一次就能...

2018-08-25 14:34:25 314

转载 SQL Server 自定义函数(Function)——参数默认值

sql server 自定义函数分为三种类型:标量函数(Scalar Function)、内嵌表值函数(Inline Function)、多声明表值函数(Multi-Statement Function)标量函数:标量函数是对单一值操作,返回单一值。内嵌表值函数:内嵌表值函数的功能相当于一个参数化的视图。它返回的是一个表,内联表值型函数没有由BEGIN-END 语句括起来的函数体。多声...

2018-08-25 12:41:05 2610

转载 c# Linq查询

https://www.cnblogs.com/dullfish/p/6101912.html

2018-08-25 10:41:36 116

转载 深入理解C#的装箱和拆箱

装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。 1. 装箱在值类型向引用类型转换时发生2. 拆箱在引用类型向值类型转换时发生光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解释了。我们先看装箱时都会发生什么事情,下面是一行最简单的装箱代码 object obj = 1; 这行语句将整型常量1赋给object类型的变量obj; 众所周知常量1是值...

2018-08-25 09:28:08 523

转载 隐式和显式接口的区别

(隐式的实现不再探讨,只剖析显式的接口实现。)定义的接口如下:两个接口的方法名及参数都相同interface ICustomA{ Int32 CompareTo(string obj);}interface ICustomB{ Int32 CompareTo(string obj);} 类的实现方式如下:一个默认的(类本身的方法),两个显式实现的。pu...

2018-08-24 14:07:56 782

转载 接口的显式实现与隐式实现

我们在实现接口时,常常是类继承接口,然后在接口中实现相应的方法。代码如下: interface IOutput { void output(); } class SimpleOutput : IOutput { public void output() { Console.WriteL...

2018-08-24 13:44:34 481

转载 C#中接口(interface)的理解--接口概念的理解

C#中的接口同COM有也相似的地方,比如1。都是“虚的”---不能被实例化,这也是接口中为什么不能包含字段--成员变量的原因(很简单,成员变量只能属于类的示例,而且C#规定变量在使用前必须初始化,这同接口的“虚”的性质矛盾)。2。正因为接口是虚的,所以接口内的索引,属性,时间等只能有声明,而不能在接口内实现,具体如何实现是派生接口或者派生类的事。3。都具有模板的性质,如果一个接口或者类从某一...

2018-08-24 11:50:35 1006

转载 学习和理解C#中的事件

委托实际上是一种类型。可以将一个或多个方法绑定到委托上面,调用委托时,一次执行委托上面绑定的方法。本文要讲述的事件实际上和委托有很深的“感情”。还是以上课的例子开始吧,假设距离上课时间前30分钟去教室上课。在距离上课前5分钟,会发生下面两件事:预备上课铃响,电子屏幕上显示上课时间。我们以下面的代码来表示模拟这个过程。class Lesson{ private int remainTi...

2018-08-23 14:15:55 193

转载 linux网络编程中,几个常用API的阻塞与非阻塞调用

阻塞socket和非阻塞socket读操作对于阻塞的socket,当socket的接收缓冲区中没有数据时,read调用会一直阻塞住,直到有数据到来才返回。当socket缓冲区中的数据量小于期望读取的数据量时,返回实际读取的字节数。当sockt的接收缓冲区中的数据大于期望读取的字节数时,读取期望读取的字节数,返回实际读取的长度。对于非阻塞socket而言,socket的接收缓冲区中有没有数...

2018-08-23 12:40:53 900

转载 socket关于数据边界的说明

Socket的Send,Recv的长度问题:一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用层看来只是一次发送。        windows的缓冲区经验值是4k。        Socket本身分为两种,流(TCP)和数...

2018-08-22 21:25:48 1947

转载 深入理解linux下write()和read()函数

 1、write()函数定义:ssize_t write (int fd, const void * buf, size_t count); 函数说明:write()会把参数buf所指的内存写入count个字节到参数放到所指的文件内。返回值:如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。 附加说明:(1)write()...

2018-08-22 21:24:56 75764 3

转载 C# 接口的作用浅谈举例

我初次接触接口(Interface),对接口的作用有点迷茫,C#接口中包含方法、属性、索引器和事件的声明,但常用的接口中一般就是方法和属性,然而接口中并没有方法的具体实现代码(不能提供任何成员实现),只有方法的返回类型和方法名。一个类实现了某个接口,则必须在类中包含接口中所有方法的实现代码,换句话说就是,继承自接口的类中必须包含接口中函数的实现代码。        说到这里,可能就可以看出接口...

2018-08-22 15:41:04 460

转载 C#事件的理解以及自定义事件的方法

事件的理解:  在skyline项目的开发中,遇到了一个新的知识:事件。  在程序中,我希望实现一个功能,当视点坐标移动的时候可以实时的得到视点的坐标。这里就需要使用事件这个概念:当坐标发生移动,则触发了一个特定的事件,他可以发出一个信号,而用户可以自定义一个函数(参数必须与事件委托的参数相同,这个后面解释),当他发出一个信号,我就可以执行这个函数。  比方说:甲和乙是朋友,上午见面了...

2018-08-22 15:18:57 183

转载 C#不同类间通过事件传递参数

 C#中不同类之间传递参数的方法有许多,这里介绍其中一种方法,通过事件传递参数:    定义两个类ClassA和ClassB,要通过事件将ClassA中成员class_A,传递到ClassB,同时ClassB中成员class_B能够传递给ClassA代码如下:一、从EventArgs基类中派生一个事件数据类:public class MyEventArgs:EventArgs...

2018-08-22 15:10:10 5400

转载 C#事件-事件处理

万物皆对象!对象与对象之间不仅仅是存在关系,更是具有千丝万缕的联系。即:如何使得一个对象发生变化时,另一个对象也能随之发生变化。这种“一个对象的状态改变导致其它对象状态改变”的现象,我们称之为事件。定义:事件,是用来描述类的成员发生改变的对象。我们举一个例子,来理解上面的定义:  例如:路边有一条狗。你看它不爽,于是走上前去踢了它一脚。我们来看紧接着发生的事情:1、这条狗很胆小,它跑...

2018-08-22 15:04:38 2232 2

转载 memset()函数及其作用

1. memset()函数原型是extern void *memset(void *buffer, int c, int count)        buffer:为指针或是数组,              c:是赋给buffer的值,       count:是buffer的长度.       这个函数在socket中多用于清空数组.如:原型是memset(buffer, 0, s...

2018-08-21 23:36:18 133

转载 sqlserver group by 的使用问题

student表:id  classNo   name    birthday1      2       aa     2001-01-012      1       bb     2001-02-013      2       cc     2002-01-03mysql中可以用select * from student group by classNo不会报错如果在sql...

2018-08-21 23:35:02 775

转载 查询重复或不重复记录SQL语句

1.如何用SQL语句把一个表里面某字段内有相同的记录查询出来现在有一个表 有三列 分别是tel,name,addr我现在要查询name一样的 具体T-SQL语句要怎么写 求助就是name这个列有很多记录在数据库里面 这些人有很多哈 就是如何把这些同名同姓的记录找出来只显示nameselect name from tb group by name having count(*) &gt...

2018-08-21 23:34:27 35651 2

原创 查找表中某字段不重复的所有列数据

select * from stu_info1 where s_score in (select s_score from stu_info1 group by s_score having count(1)=1)

2018-08-21 23:22:14 6874 1

转载 字节序与网络字节序

CPU向内存保存数据的方式有2种,这意味着CPU解析数据的方式也分为2种大端序:高位字节存放到低位地址小端序:高位字节存放到高位地址假设在0x20号开始的地址中保存4字节int类型数0x12345678,大端序CPU保存方式如下:0x20号     0x21号     0x22号     0x23号  0x12          0x32        0x56        ...

2018-08-20 22:52:23 462

转载 C/C++简单网络通信程序

Windows下:server: #include<stdio.h>#include<stdlib.h>#include<winsock2.h>void ErrorHandling(char *message);int main(int argc, char *argv[]){ WSADATA wsaData; SOCKET hSe...

2018-08-19 21:32:15 2769 1

转载 Linux 快速配置 VIM 实现语法高亮 自动补全 自动缩进以及文件管理等功能

1.首先下载以下压缩包并解压链接:http://pan.baidu.com/s/1o82ke5k 密码:75rq 解压后可以看到里面有三个文件 文件夹doc文件夹plugin隐藏文件.vimrc 2.然后 cd ~ 进入自己的工作目录ls  -a  看在隐藏文件中有没有 文件夹.vim  和隐藏的配置文件 .vimrc 没有的话 mkdir .vim...

2018-08-19 16:49:48 1901

转载 vim 设置tab宽度

http://blog.chinaunix.net/uid-346158-id-2131115.html 工作中嫌vim 中一个tab的宽度太大,debian系统,没改之前是宽度是8个字符,想改成4,如下:cd ~vim .vimrc添加如下几行:(括号中的不是,是我添加的)set shiftwidth=4          (表示每一级缩进的长度)set softtabsto...

2018-08-19 16:44:51 1738

转载 Linux命令--如何选中几行再粘贴到某行

1.选中几行:命令行模式下开始行号,结束行号+y,再回车2.粘贴命令行模式下,按P

2018-08-19 16:31:05 2359 2

转载 用sockaddr_in 而不用sockadd的原因

用sockaddr_in 而不用sockadd的原因 sockaddr其定义如下:struct sockaddr {  unsigned short sa_family; /* address family, AF_xxx */  char sa_data[14]; /* 14 bytes of protocol address */  };说明:sa_family ...

2018-08-19 11:57:23 479

转载 理解网络编程和套接字

网络编程中接受连接请求的套接字的创建过程1.调用socket函数创建套接字2.调用bind函数分配IP地址和端口号3.调用listen函数转为可接收请求状态4.调用accept函数受理连接请求 IP地址:在网络环境中唯一标示一台主机端口号:在主机中唯一标示一个进程IP+port:在网络环境中唯一表示一个进程(socket)套接字是文件的一种类型(伪文件)socket...

2018-08-19 11:55:54 120

转载 C#简单三层模型

UI:用户界面BLL:业务逻辑层,做业务逻辑判断或计算DAL:数据访问MODEL:数据库有一张表,这层就对应一个类Common:通用工具层,如Md5

2018-08-17 00:02:27 313

转载 C# 使用委托跨线程通讯

当我们需要处理大量数据时,为了使UI界面不致出现假死状态,我们就必须使用多线程进行处理。所以问题就出现了,我们都知道线程作为一个独立运行的单元,线程间不可以随意访问和修改,那么该怎么办呢?其实C#提供了跨线程访问的方法,也就是通过委托安全调用从非拥有控件的线程访问控件。        一、委托        我们首先先来了解下委托,简单地说,委托就是一个类,它定义了方法传递参数的类型和个数...

2018-08-16 14:00:10 1303

转载 C#事件与委托(水壶烧水事件)

假设我们有个高档的热水器,我们给它通上电,当水温超过95度的时候: 1、扬声器会开始发出语音,告诉你水的温度 2、液晶屏也会改变水温的显示,来提示水已经快烧开了。 对上面的程序做个改进: 假设热水器由三部分组成: 热水器,仅仅负责烧水 警报器,发出警报 显示器,显示提示和水温 代码:using System;using System.Collections.Generic;...

2018-08-16 09:44:39 1864

转载 C#委托的好处

先来看一个例子:某人有三子,让他们各自带一样东西出门,并带回一头猎物。可以理解为一种父亲对儿子的委托: 猎物  办法(工具 某工具) 三个人执行委托的方法各不相同兔子 打猎(工具 弓)野鸡 买(工具 钱)狼 诱捕(工具 陷阱)什么是委托?委托是一个类型,用来指称所有形式相同的方法(返回值类型相同而且参数也相同)。public delegate double Hand...

2018-08-15 16:43:40 1183

转载 C#委托的引用

定义一个学生类—-student类,然后定义一个方法fun(),通过委托实现方法回调,使之能求出成绩最好的学生,也能求出成绩最差的学生。 代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespa...

2018-08-15 16:28:13 284

转载 C#对委托的理解(1)

要理解委托,我们首先要知道委托的概念:”委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。“这是百度上和许多教科书上都有的一个概念,但是初学这门编程语言的话,或者基础比较差的童鞋,看到这句话,肯定是一脸懵比,先不用着急,我们来慢慢通过代码...

2018-08-15 15:37:42 116

空空如也

空空如也

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

TA关注的人

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