- 博客(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关注的人