- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 C++SOCKET多线程网络编程实现多个客户端与服务器通信
C++SOCKET多线程网络编程实现多个客户端与服务器通信#设计思路通过在服务器端建立两个线程,主线程用来监听客户端的接入,当有新的客户端接入时,服务器为新的客户端建立服务线程,通过服务线程来实现服务器与客户端的通信。#结果演示服务器端代码:#include"stdafx.h"#include <cstdio>#include<io
2018-10-15 20:25:01 25169 17
原创 面经
Linux删除指定时间之前的文件:location = "/root/test"find $location -mtime +30 -type -f |xargs rm -rf#find:#访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。#修改时间(-mtime/天,-mmin/分钟) :用户最后一次修改时间。#变化时间(-ctime/天,-cmin/分钟) ...
2019-09-24 17:01:51 373
原创 单例模式
单例模式:单例模式主要解决一个全局使用的类频繁的创建和销毁的问题。单例模式下可以确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式有三个要素:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。C++实现单例模式饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,获取对象的速度快,以空间换时间,线程安全。c...
2019-09-14 20:53:57 158
原创 IO多路复用
1、IO多路复用IO复用模型在阻塞IO模型上多了一个select函数,select函数有一个参数是文件描述符集合,意思就是对这些的文件描述符进行循环监听,当某个文件描述符就绪的时候,就对这个文件描述符进行处理。这种IO模型是属于阻塞的IO。但是由于它可以对多个文件描述符进行阻塞监听,所以它的效率比阻塞IO模型高效。IO多路复用就是我们说的select,poll,epoll。select/e...
2019-09-11 16:14:22 160
原创 IO多路复用机制--Reactor模式
在处理web请求时,通常有两种体系结构,分别为:thread-based architecture(基于线程)、event-driven architecture(事件驱动)thread-based architecture基于线程的体系结构通常会使用多线程来处理客户端的请求,每当接收到一个请求,便开启一个独立的线程来处理。这种方式虽然是直观的,但是仅适用于并发访问量不大的场景,因为线程需要占...
2019-09-11 10:21:54 302
原创 STL中的allocator
STL的分配器用于封装STL容器在内存管理上的底层细节。在C++中,其内存分配释放如下:new运算分为两个阶段:1.调用::operator new配置内存 2.调用对象构造函数构造对象内容delete运算分为两个阶段:1.调用对象析构函数 2.调用::operator delete释放内存STL allocator将两个阶段操作区分开:内存配置由alloc::allocate()负责,内...
2019-09-10 16:10:36 339
原创 C++中四个智能指针
智能指针的作用:管理一个指针,因为存在以下情况,申请的空间在函数结束时忘记释放,造成内存泄露。使用智能指针可以很大程度上避免这个问题,因为智能指针就是一个类,当超出了类的作用域,类会自动调用析构函数,析构函数会自动释放资源,所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放。1 auto_ptr(c++11已抛弃)auto_ptr< string> p1 (ne...
2019-09-09 10:47:10 234
原创 Struct和union内存地址
typedef struct foo { int a; char b; char c; int d; long e; float f; double g;}foo_t;union MyUnion{ int a; char b; char c; int d; long e; float f; double g;}MyUnion;int main(){ p...
2019-09-08 19:43:03 353
原创 C++中四种cast转换
C++中四种类型转换是:static_cast,dynamic_cast,const_cast,reinterpret_cast1 static_cast用于各种隐式转换,例如将非const转换为const,void*转指针(将void指针指向任意类型)等,用于多态向上转化,如果向下转能成功但是不安全,结果未知;2 dynamic_cast用于动态类型转换,只能用于含虚函数的类,用于类层次...
2019-09-05 20:08:21 382
原创 RYU基于跳数的最短路径转发
RYU控制器实现基于跳数的最短路径转发from ryu.base import app_managerfrom ryu.ofproto import ofproto_v1_3, ofproto_v1_3_parserfrom ryu.controller.handler import set_ev_clsfrom ryu.controller.handler import CONFIG_D...
2018-12-05 16:37:38 4915 21
原创 4. 两个排序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位数是 (2 + 3)/2 = ...
2018-11-08 10:28:28 176
原创 3. 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 无重复字符的最长子串是 “abc”,其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 无重复字符的最长子串是 “b”,其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 无重复字符的最长子串是 “wke”,其长度为 3。请注意,答案必须是...
2018-11-06 14:53:14 121
原创 明文加密,解密算法
课堂练习1、用简单字母置换产生的密文仍然保持明文的统计特征。为打乱密文的统计结构,可采取如下的加密方法,它是排斥加加密算法的扩展。将英语的26个字母按算许映射成为0,1,2,3,…,25,并记此映射为I,即I(A)=0, I(B)=1, …, I(Z)=25。令X和Y为两个英文字母,令X+Y = I-1([ I(x) + I(Y) ] mod 26)其中I-1为I的反函数,即I-1(0)=A...
2018-11-04 15:07:19 9661
原创 LeetCode 第二题:两数相加
题目:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition fo...
2018-10-31 21:30:44 203
原创 记四位数 . abcd 为A,由它的四个数字a,b,c,d组成的最小的四位数记为B,如果A-B=999,那么这样的四位数A共有______个.
Python需要自己手动转换格式真的很烦人。。。count=0for num in range(1000,10000): A=num a=num/1000 num%=1000 b=num/100 num%=100 c=num/10 d=num%10 num_list=sorted([a,b,c,d]) if int(nu...
2018-10-27 20:21:24 2066
原创 Ryu 安装过程中的问题
我使用的是VMware虚拟机、Ubuntu14.0.4经过一天的捣鼓,终于安装好Ryu了安装过程:在安装RYU之前需要先安装Python的套件库- sudo apt-get install python-pip python-dev build-essential- sudo pip install --upgrade pip执行完上述两条命令后,再来安装以下ryu所需要的一些...
2018-10-26 22:13:06 6703 1
原创 Python编程:从入门到实践(课后习题8)
11-1 城市和国家 :编写一个函数,它接受两个形参:一个城市名和一个国家名。这个函数返回一个格式为City, Country 的字符串,如Santiago, Chile 。将这个函数存储在一个名为city_functions.py的模块中。创建一个名为test_cities.py的程序,对刚编写的函数进行测试(别忘了,你需要导入模块unittest 以及要测试的函数)。编写一个名为test_c...
2018-10-25 22:18:42 358
原创 Python编程:从入门到实践(课后习题7)
10-1 Python学习笔记 :在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python知识,其中每一行都以“In Python you can”打头。将这个文件命名为learning_python.txt,并将其存储到为完成本章练习而编写的程序所在的目录中。编写一个程序,它读取这个文件,并将你所写的内容打印三次:第一次打印时读取整个文件;第二次打印时遍历文件对象;第三次打印时将各...
2018-10-25 16:24:19 602
原创 Python编程:从入门到实践(课后习题6)
9-1 餐馆 :创建一个名为Restaurant 的类,其方法__init__() 设置两个属性:restaurant_name 和cuisine_type 。创建一个名为describe_restaurant() 的方法和一个名为open_restaurant() 的方法,其中前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。根据这个类创建一个名为restaurant 的实例,分别打印...
2018-10-24 20:19:51 1009
原创 Python编程:从入门到实践(课后习题5)
8-1 消息 :编写一个名为display_message() 的函数,它打印一个句子,指出你在本章学的是什么。调用这个函数,确认显示的消息正确无误。 #8-1 def display_message(): print('I have learn Python') display_message()8-2 喜欢的图书 :编写一个名为favorite_b...
2018-10-23 14:47:57 754
原创 Python编程:从入门到实践(课后习题4)
7-1 汽车租赁 :编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如“Let me see if I can find you a Subaru”。#7-1car = input("what car are you want ")print("let me see if I can find you a "+car)7-2 餐馆订位 :编写一个程序,询问用户有多少人...
2018-10-22 19:56:00 573
原创 Python编程:从入门到实践(课后习题3)
6-1 人 :使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。该字典应包含键first_name 、last_name 、age 和city 。将存储在该字典中的每项信息都打印出来。#6-1 info={'first_name':'yuan','last_name':'chao','age':23,'city':'TianJin'} print(info)6...
2018-10-21 21:47:38 1100
原创 Python编程:从入门到实践(课后习题2)
5-2 更多的条件测试 :你并非只能创建10个测试。如果你想尝试做更多的比较,可再编写一些测试,并将它们加入到conditional_tests.py中。对于下面列出的各种测试,至少编写一个结果为True 和False 的测试。检查两个字符串相等和不等。使用函数lower() 的测试。检查两个数字相等、不等、大于、小于、大于等于和小于等于。使用关键字and 和or 的测试。测试特定的值...
2018-10-20 21:10:37 1040
原创 Python编程:从入门到实践(课后习题1)
****2-1 简单消息:将一条消息存储到变量中,再将其打印出来message =(&quot;Hello,yuanchaochao&quot;)print(message)2-2多条简单消息:将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。message =(&quot;Hello,yuanchaochao&quot;)print(message)message=(&am
2018-10-19 16:06:17 6480
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人