C++
文章平均质量分 52
井冈山市监人
这个作者很懒,什么都没留下…
展开
-
std::bind绑定器、std::function、extern C的使用
std::bind绑定器将函数、成员函数和闭包转成function函数对象将多元(n>1)函数转成一元函数或者(n-1)元函数。bind()接受一个函数(或者函数对象,或者任何你可以通过"(...)"符号调用的事物),生成一个其有某一个或多个函数参数被“绑定”或重新组织的函数对象。(译注:顾名思义,bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的。)例如:转载 2015-04-09 18:07:47 · 898 阅读 · 0 评论 -
Linux网络编程之socket简单通信--客户端代码
******************************************************************************Client端代码如下: #include<netinet/in.h> // sockaddr_in #include<sys/types.h> // socket #include<sys/socket.h...原创 2018-02-24 09:50:18 · 191 阅读 · 0 评论 -
Linux网络编程之socket简单通信TCP--服务端代码
Server端代码如下:/************************************************************************* #include<netinet/in.h> // sockaddr_in #include<sys/types.h> // socket #include<sys/socket.h>...原创 2018-02-24 09:53:08 · 365 阅读 · 0 评论 -
linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
一、介绍基于TCP协议通过socket实现网络编程常用API1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解地址分别是:1)、http://blog.csdn.net/u011068702/article/details/564799272)、http://blog.csdn.net/u011068702/article/details/5648...转载 2018-02-24 11:12:01 · 2104 阅读 · 0 评论 -
linux非阻塞式socket编程之select()用法
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞...转载 2018-02-24 14:28:11 · 182 阅读 · 0 评论 -
socket阻塞与非阻塞
阻塞与非阻塞在 server 进入 listen 状态之后, 我们下面分别讨论两种实现方法:1. fcntl 方法对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞, 阻塞的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读, 或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止. 而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回...转载 2018-02-24 14:29:02 · 1253 阅读 · 0 评论 -
strcpy,strncpy,memcpy,memmove,memset函数
一.函数介绍:1、memcpy函数原型:extern void *memcpy(void *dest, const void *src, size_t count);用法:#include<string.h>功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。注意:和strcpy相比,memcpy...转载 2018-04-01 11:55:27 · 331 阅读 · 0 评论 -
socket的半包,粘包与分包的问题
首先看两个概念: 短连接: 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接: 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后...转载 2018-04-01 15:53:34 · 432 阅读 · 0 评论 -
linux非阻塞式socket编程之select()用法
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞...转载 2018-05-31 12:28:06 · 321 阅读 · 0 评论 -
随笔 - 58, 文章 - 0, 评论 - 0, 引用 - 0 三次握手 四次握手 与socket函数的关系
1、网络中进程之间如何通信? 2、Socket是什么? 3、socket的基本操作 3.1、socket()函数 3.2、bind()函数 3.3、listen()、connect()函数 3.4、accept()函数 3.5、read()、write()函数等 3.6、close()...转载 2019-03-11 09:44:40 · 196 阅读 · 0 评论 -
C++ MD5加密实现
//MD5.h #ifndefBZF_MD5_H #defineBZF_MD5_H #include<string> #include<iostream> //asmallclassforcalculatingMD5hashesofstringsorbytearrays //it...转载 2019-04-04 18:19:06 · 325 阅读 · 0 评论 -
Socket send函数和recv函数详解
1.send 函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明一个...转载 2018-02-26 16:38:04 · 24392 阅读 · 1 评论 -
什么是C++虚函数、虚函数的作用和使用方法
我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数。这两个函数不仅名字相同,而转载 2016-03-21 19:15:21 · 361 阅读 · 0 评论 -
网络编程网友佳作。
网络编程名博原创 2015-12-23 09:34:50 · 332 阅读 · 0 评论 -
C++内存管理
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C转载 2014-11-03 15:25:48 · 439 阅读 · 0 评论 -
C++ Assert断言
判断一个表达式,如果结果为假,输出诊断消息并中止程序。[cpp] view plaincopyprint?void assert( int expression ); expression表达式【包括指针】是非零或零)assert的作用是现计算表达式 expression ,如果其值为假(即为0)原创 2015-04-09 11:28:37 · 454 阅读 · 0 评论 -
Windows 平台安装 GNU 环境 ---MinGW
下载MinGW,网址 www.MinGW.org;安装好后,在安装目录:MinGW\msys\1.0\mysy.bat GNU环境的控制台。1.配制MinGW的环境变量:在目录MinGW\msys\1.0\etc\profile 下最后添加export PATH=/C/MinGW/bin:$PATH2.打开 mysy.bat,cd /ccd 你的目录gcc -o h原创 2015-03-16 22:26:10 · 622 阅读 · 0 评论 -
【干货】国外程序员整理的 C++ 资源大全
博客专家福利 公告:CSDN博客积分系统升级 有奖试读&征文:我们在互联网上奋斗的故事 参与话题讨论,好礼等你拿 深圳微信开发者大会不容错过的十大理由 【干货】国外程序员整理的 C++ 资源大全分类: C++112014-10-27 12:07 16人阅读 评论(0) 收藏 举报目录(?)[+]转载 2014-10-31 20:00:33 · 967 阅读 · 0 评论 -
进程和线程的关系和区别
程序是指计算机指令的集合,它以文件的形式的存储在磁盘中。而进程通常是指一个正在运行的程序实例,即为应用,是一个程序在其自身地址空间的一次执行活动。一个程序可以对应多个进程,即多次打开同一个程序。进程组成:(1)内核对象,操作系统的一个内存块。(2)地址空间。线程组成:(1)内核对象,操作系统的一个内存块。(2)线程栈。进程从来不执行任何东西,它只是线程的容器,线程的执行环境。系统从进程原创 2015-04-26 16:05:00 · 365 阅读 · 0 评论 -
windows下批处理
windows下批处理原创 2015-05-20 09:44:30 · 338 阅读 · 0 评论 -
程序语言入门网站
点击打开链接原创 2015-07-31 14:08:25 · 230 阅读 · 0 评论 -
Linux网络编程之socket文件传输示例(http://www.jb51.net)
本文所述示例程序是基于Linux平台的socket网络编程,实现文件传输功能。该示例是基于TCP流协议实现的socket网络文件传输程序。采用C语言编写。最终能够实现传输任何格式文件的文件传输程序。Server端代码如下:/*************************************************************************原创 2015-12-11 16:29:21 · 808 阅读 · 0 评论 -
C++11 多线程
使用C++11开启一个线程是比较简单的,下面来看一个简单的例子:#include #include void hello(){ std::cout }int main(){ std::thread t1(hello); t1.join();std::cout return 0;转载 2015-08-30 14:46:34 · 387 阅读 · 0 评论 -
c++中堆、栈内存分配
首先来看看主要有几种程序内存分配:一个由C/C++编译程序占用内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数参数值,局部变量值等。其操作方式类似于数据结构中栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局...转载 2019-06-05 12:03:41 · 10656 阅读 · 1 评论