- 博客(207)
- 收藏
- 关注
原创 Ubuntu20.04开启远程ssh连接
sudp apt updatesudo apt install openssh-serverservice ssh statusvim /etc/ssh/sshd_config修改设置:Port 22ListenAddress: 0.0.0.0PermitRootLogin yesservice ssh statusservice ssh status
2023-04-21 15:25:41
605
原创 Coogle浏览器由于不安全导致无法登录
关闭Google浏览器下载everything,找到文件chrome_proxy.exe的位置,本机为C:\Program Files (x86)\Google\Chrome\Application\chrome_proxy.exe;双击该文件打开Coogle浏览器即可
2022-04-04 14:57:32
379
原创 ubuntu18.04下更新至cmake3.20.2
到cmake官方下载地址下载所需版本,这里下载的是cmake-3.20.2-linux-x86_64.tar.gz解压文件tar zxvf cmake-3.20.2-linux-x86_64.tar.gz查看解压文件tree -L 2 cmake-3.20.2-linux-x86_64创建软链接sudo mv cmake-3.20.2-linux-x86_64 /opt/cmake-3.20.2sudo ln -sf /opt/cmake-3.20.2/bin/* /usr/b.
2022-04-04 14:02:26
1051
原创 C++头文件的一些注意事项
同一个文件a要分成a.h和a.cpp两个,a.cpp中写定义(函数,类等),a.h中写声明若b.cpp和c.cpp需要调用a.cpp中定义的函数f(),则分别在b.cpp和c.cpp前面加上#include “a.h”,这样在预处理阶段会展开f()的声明,这样编译器就知道f()是个函数调用,而不会理解为是其它东西(例如,可能理解为一个类f的实例化)在a.cpp中也要#include “a.h”...
2022-04-03 21:02:15
4034
原创 ubuntu18.04降低gcc版本
从默认的7.5.0降低到5.5.01. cd /usr/bin 2. sudo rm -r gcc //移除之前的软链接3. sudo ln -sf gcc-5 gcc // 建立gcc-5的软链接 此处尝试使用gcc-5.5.0,但是报错4. sudo rm -r g++ //同上5. sudo ln -sf g++-5 g++ //同上
2022-03-04 14:09:45
722
原创 matlab2016b安装
参考安装教程安装包放:D:\Matlab2016\安装包安装包内的三个压缩包解压到:D:\Matlab2016\matlab2016b真正的matlab文件:D:\Matlab2016\files
2022-02-16 21:37:01
341
原创 OPNET14.5安装和卸载
OPNET需要C++环境,这里使用VS2010:VS2010安装安装参照win10下VS2010安装添加环境变量在系统变量Path中,添加VS2010目录下这三个目录:在系统变量中,新建变量lib,并添加以下目录:在系统变量中,新建变量include,并添加以下目录:验证是否安装成功在cmd中分别输入cl,ml,linkOPNET14.5安装百度网盘下载链接:https://pan.baidu.com/s/1KEwcL6GHBX7DhyGZYLAyvw提
2021-12-07 11:35:41
1645
1
原创 Git操作
基本概念概述initaddcommitstatuslogreset删除暂存区和本地库的文件找回已删除的文件diffbranch远程仓库地址别名pushclone多人合作pullssh免密操作概述团队内部合作:跨团队合作:init在想要管理的目录下右键Git Bash Here,输入命令git init,则出现一个.git文件夹,其中保存了各种相关信息add// 将文件从当前工作区add到暂存区git add 文件名commit// 将文件从暂存区commit到本地库,并且自定义更新
2021-12-01 00:22:28
612
原创 Python中的设计模式
设计模式单例模式单例模式使用类名()创建对象时,解释器默认调用类的__new__()方法为其分配内存,并返回对象的引用解释器获得对象的引用后,会将其传给__init__()的self参数,执行初始化动作单例:重写__new__()方法 + 只执行一次初始化动作class Player(object): instance = None # 类属性,记录单例对象的引用 init_flag = False # 类属性,记录是否执行过初始化动作 def __new__(c
2021-11-28 18:27:18
185
原创 Python-OOP
对象:变量,数据,函数等Python中所有类若不显示声明其基类,默认继承自基类Object,因此会继承其全部方法,特点是以__开头,以__结尾dir(对象名) # 查看该对象拥有的所有属性和方法对象名.方法 # 所有对象都可以用.调用 定义类类名:大驼峰方法:和常规函数相比,第一个参数必须是self3. 在类的外部为类添加属性实际只是为单个类对象添加了name属性隐患:如果不小心将添加name属性这行代码移动到tom.eat()后面,就会报错(因为在eat方法...
2021-11-28 17:37:02
170
原创 Python基础
Python中的变量和数据:a = "123" # 数据"123"存在内存中,变量a存的是数据"123"的地址,即引用a = "666" # a不再是数据"123"的引用,而是"666"的引用,即修改了a中保存的地址b = a # b同样保存了"666"的地址,相当于浅拷贝id(a) # 获取变量a中保存的数据的地址Python中的传参和返回值都是传引用如果函数收到一个可变对象(例如字典和列表)的引用,就能修改原数据;如果函数收到一个不可变对象(例如数字,字符串,元.
2021-11-19 20:44:40
738
2
原创 Python3 shebang符号
在Linux下,在要运行的主Python程序的开头加上一行#!符号,后面跟上python3的路径(可以通过which python3命令查询)#! /usr/bin/python3 就可以通过./Python程序直接运行若该Python没有执行权限,可以通过chmod +x Python程序名添加...
2021-11-19 15:32:34
526
原创 Anaconda和Pycharm的安装和使用
工具AnacondaPycharmAnaconda从镜像源下载Anaconda,在archive目录下安装Anaconda3-2020.11-Windows-x86_64.exe版本https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/安装时,勾选add path选项,就无须自己配置环境变量了Pycharm官网下载并安装(付费版会多一些功能)创建新项目:使用此工具新建环境,每创建一个项目会拷贝一份环境文件到项目文件夹下
2021-11-17 14:04:05
508
原创 Anaconda完全卸载
打开 cmd, 输入如下命令:conda install anaconda-clean输入如下命令卸载anaconda-clean --yes在anaconda文件夹中找到uninstall卸载程序在系统的卸载程序处卸载,确保卸载干净
2021-11-17 12:36:29
10302
原创 MySQL-原理篇
常用SQL语句三大范式表的设计需要遵循三大范式:在这里插入代码片主键(列级和表级)注意:一张表必须有,且只能有一个主键约束!!作用:主键值是这条记录在这张表中的唯一标识(可以看做这条记录的身份证号);分类1.根据主键字段的数量划分单一主键:复合主键:即表级主键约束(可以理解为两个身份证号粘到一起,仍然算一个主键约束,但违背了三范式) primary key(字段1,字段2,...) // 将这些字段粘到一起,不能为NULL也不能重复2.根据主键性质划分自然主键:推荐(
2021-09-10 11:35:57
216
原创 Win10下MySQL安装和卸载
mysql安装和卸载卸载打开下载的msi文件,Remove卸载删掉C:\Program Files\MySQL文件夹删掉C:\ProgramData\MySQL如果还删不干净:https://www.jianshu.com/p/491f837e434b
2021-08-30 15:40:04
167
原创 Ubuntu下MySQL的安装和卸载
安装安装服务端:sudo apt-get install mysql-server安装客户端:sudo apt-get install mysql-client安装程序编译时链接的库:sudo apt-get intall libmysqlclient-dev测试出现mysql的socket处于listen代表安装成功:sudo netstat -tap | grep mysql连接// 123456是密码mysql -u root -p123456 卸载删除M.
2021-08-03 11:10:13
251
原创 剑指Offer60.n个骰子的点数
题目:剑指Offer60.n个骰子的点数输入n个骰子,则每次丢n个骰子,可能出现的点数和为[ n,6n ];按点数和从大到小的顺序,输出出现该点数的概率;思路:
2021-08-02 14:58:15
142
原创 线程池基本介绍
文章目录线程池简介线程池的线程数量选择子线程的方式线程池简介线程池是由服务器预先创建的一组子线程, 线程池中的所有子线程都运行着相同的代码。当有新任务到来时,主线程将通过某种方式选择线程池中的某一个子线程来为之服务。等到执行结束再将线程放回池子备用. 这相比于每次动态创建新线程, 执行结束再销毁的效率要高的多.线程池的线程数量线程池中的线程数量直接的限制因素是CPU的总核数N:对于CPU密集型的任务(消耗CPU计算资源的任务)来说,那线程池中的线程数量一般设置为4(或者+1防止其它因素造成的线程阻
2021-07-09 10:51:29
182
原创 5种I/O模型
阻塞非阻塞非阻塞I/O,如果I/O事件没有就绪就会立刻返回, 可以根据返回值和 errno 区分各种情况, 返回后我们可以去做其他事. 由于不阻塞, 所以为了完成读/写, 通常循环调用I/O函数, 直到事件发生后, 才去拷贝(从内核的读缓冲区拷贝到用户态或者用户态拷贝进内核的写缓冲区), 拷贝完成后返回I/O复用Linux使用select, poll, epoll函数实现I/O复用模型,这些函数也会使进程阻塞,但是和阻塞IO所不同的是 这些函数可以同时阻塞多个IO操作。而且可以同时对多个读操作、
2021-07-07 22:20:17
115
1
原创 阻塞/非阻塞和同步/异步
以网络I/O为例: 分为数据就绪和数据读写两个阶段, 以read一个socket为例阻塞/非阻塞: 说的是数据就绪阶段, 说的是系统调用这个状态阻塞如果read的时候, 若它的读缓冲区为空, 默认这个函数会阻塞在这, 等到有数据才会去读并返回, 才能往下执行非阻塞同上, 若设置socket的flags为O_NONBLOCK, 即使读缓冲区为空, read调用也会立刻返回, 我们可以根据返回值来判断发生了什么事同步/异步: 说的是数据读写阶段, 说的是应用程序和内核的交互方式同步
2021-07-07 20:49:23
89
1
原创 本地socket通信(同一主机的IPC)
本地套接字实现流程和网络套接字类似,一般采用TCP的通信流程服务端创建监听的套接字int lfd = socket(AF_UNIX/AF_LOCAL, SOCK_STREAM, 0); 监听的套接字绑定本地的套接字文件, 使用struct sockaddr_un addr;bind(lfd, addr, len); // 绑定成功之后,指定的sun_path中的套接字文件会自动生成。 监听 listen(lfd, 100);等待并接受连接请求, 就能得到客户端.
2021-07-07 16:21:22
2677
原创 多进程/多线程两种方式实现简单socket通信
多进程服务端#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>#include <sys/ipc.h>#include <sys/shm.h>#include <unistd.h>#include <fcntl.h>#include <stdlib.h>#include
2021-07-05 17:35:22
541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人