自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 聊天室

1、文件传输:fprintf和fwrite的区别fprintf(fp, "%d", buffer); 是将格式化的数据写入文件fprintf(文件指针,格式字符串,输出表列);fwrite(&buffer, sizeof(int), 1, fp);是以二进位方式写入文件fwrite(数据,数据类型大小(字节数),写入数据的最大数量,文件指针);一句话表述:fwrite是将数...

2018-08-28 14:10:26 409

原创 长连接&短连接以及心跳包

一、长连接与短连接1、长连接: 指在一个TCP连接上可以连续发送多个数据包,        在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接;        一般需要自己做在线维持。 2、短连接: 指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接;        一般银行都使用短连接。         它的优点是:管理起来比较简单,...

2018-08-22 15:01:54 932

原创 并发服务器之多线程和多路复用(select)的区别

一、I/O复用模型1、IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复...

2018-08-22 11:31:58 6487

原创 C++多继承模型的内存布局

对于多继承情况考虑示例代码 1 2 3 struct Base1 {...}; struct Base2 {...}; struct Derived : Base1, Base2 {...}; 有如下内存布局首先出现的是派生类Derived类的虚表指针vptr(这里插入一个提醒:一直以来vptr都被国人...

2018-08-22 10:19:23 417

转载 运算符优先级口诀

一共有十五个优先级: 1   ()  []  .  ->2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   * / %4   + - 5   >> <<  6   > >= < <= 7   == !=   8   & ...

2018-08-13 09:32:26 205

转载 ReadDir()线程不安全函数

一、readdir函数:      struct dirent *readdir(DIR *dirp); The  data  returned by readdir() may be overwritten by subsequent calls to readdir() for the same directory stream.成功时,readdir() 返回指向 dirent ...

2018-08-10 16:13:18 900

转载 linux--man 1/2/3查找的区别

man (1) 命令man 2 xxx用于系统调用man 3 xxx 用于库函数如果某个库函数没有同名的命令和系统调用,那才能直接用man xxx

2018-08-10 10:52:45 602

原创 0809线程

一、线程取消(1)int   pthread_cancel(pthread_t   thread)   发送终止信号给thread线程,如果成功则返回0,否则为非0值。发送成功并不意味着thread会终止。   (2)pthread_setcanceltype()函数用来设置当前线程的“可取消类型”,并且将先前的类型返回到oldtype引用中。“可取消类型”的合法值分别是:   ...

2018-08-10 10:17:51 115

原创 文件流操作:fseek()、rewind()、fprintf()、fscanf()

1、fseek() int fseek(FILE * stream, long offset, int whence); 函数说明:fseek()用来移动文件流的读写位置.1、参数stream 为已打开的文件指针,2、参数offset 为根据参数whence 来移动读写位置的位移数。参数 whence 为下列其中一种:    SEEK_SET 从距文件开头offse...

2018-08-06 10:44:09 1055

转载 seekg()/seekp()与tellg()/tellp()的用法详解

对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:ios::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置ios::end:...

2018-08-04 10:08:17 439

原创 Linux即时通信软件项目chatroom知识点整理(五)

21、TCP是如何保证可靠数据传输的1)应用数据被分割成TCP认为最适合发送的数据块。 这和UDP完全不同,应用程序产生的数据报长度将保持不变(将数据截断为合理的长度) 2)超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。 3)TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。 4)...

2018-08-01 11:11:28 1060

空空如也

空空如也

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

TA关注的人

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