- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 用C语言实现websocket服务器
Websocket Echo Server Demo背景嵌入式设备的应用开发大都依靠C语言来完成,我去研究如何用C语言实现websocket服务器也是为了在嵌入式设备中实现一个ip camera的功能,用户通过网页访问到嵌入式设备的摄像头以及音频,在学习的过程中先实现echo server是最基本的。主要参考资源编写 WebSocket 服务器——MDNLinux下用C编写WebSocet服务以
2017-03-05 19:25:00 30909 10
原创 terminator安装及常用操作
terminator安装sudo add-apt-repository ppa:gnome-terminatorsudoapt-get updatesudo apt-get install terminator使用Ctrl+Shift+O 水平分割终端(分成上下两个窗口)Ctrl+Shift+E 垂直分割终端(分成左右两个窗口)Ctrl+Shift+W 关闭当前终端...
2018-08-28 16:54:43 9386
转载 tmux使用手记
tmux指令操作session 会话: session是一个特定的终端组合。输入tmux就可以打开一个新的sessiontmux new -s session_name 创建名为 session_name 的 tmux session tmux attach -t session_name 重新回到叫做 session_name 的 tmux session tm...
2018-08-28 16:52:41 3009
原创 解决QCamera使用QCameraImageCapture截图卡顿问题
卡顿原因:QCameraImageCapture每次调用capture,无论你是否输入路径,都会将捕获的图片存盘,存盘的速度慢导致卡顿。解决思路:将捕获的图片输出到内存缓冲区而不存盘具体操作:1、确保支持输出到缓冲区isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)2、设置截图输出、缓冲区格式、分辨率image_c...
2018-03-08 16:09:48 7277 9
转载 Git忽略规则及.gitignore规则不生效的解决办法
1、Git忽略规则在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:*.a # 忽略所有 .a 结尾的文件!lib.a # 但 lib.a 除外/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODOb
2017-07-01 21:59:22 500
原创 蓝桥杯-算法训练-摆动序列
问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数; 2. 序列中至少有两个数。 3. 序列中的数两两不相等; 4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i – 2个数小,则第i个数比第i – 2个数大。 比如,当k = 3时,有下面几个这
2017-03-28 22:32:48 1004
转载 ALSA(Advanced Linux Sound Architecture)声卡编程介绍及实例
ALSA表示高级Linux声音体系结构(Advanced Linux Sound Architecture)。它由一系列内核驱动,应用程序编译接口(API)以及支持Linux下声音的实用程序组成。这篇文章里,我将简单介绍 ALSA项目的基本框架以及它的软件组成。主要集中介绍PCM接口编程,包括您可以自动实践的程序示例。
2017-03-14 21:20:36 2326
原创 openwrt远程登录总结
一、ssh登录1、密码设置使用ssh登录前必须要设置过密码才能使用#passwd2、服务开启在openwrt默认都是带有ssh服务的,只不过使用的是一个相对较小的SSH服务器和客户端——dropbear。#dropbear3、开机启动在/etc/rc.local文件最后也就是exit 0前面一行加上启动服务的命令就好啦vi /etc/rc.local二、telnet登录telnet服务在没有设置ro
2017-03-12 15:33:35 15559
原创 无线网络转为有线网络
借助winPC实现无线转有线在做作品类比赛的时候,现场演示遇到了一个问题,就是现场只提供无线网络,而不提供有线网,更糟糕的是自己的作品必须要有有线网络才能用。大家自然就会想到把无线网络转换成有线网络不就行了吗,话虽这样说,但是上网找了很久也没有结果,最后经过自己摸索发现了这个方法,在此记录。场景设备比赛现场的无线设备A中间用于无线转有线的Windows电脑B只有通过网线才能联网的嵌入式开发板C
2017-03-05 10:55:55 16954 1
原创 Linux C Socket UDP编程介绍及实例
1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。框图如图1.3所示UDP协议的服务器端流程服务器流程主要分为下述6个部分,即建立套接字、设置套接字地址参数、进行端口绑定、接收数据、发送数据、关闭套接字等。(1)建立套接字文件描述符,
2016-11-25 15:48:10 43899 4
原创 Linux C Socket TCP编程介绍及实例
1、TCP网络编程主要流程 图1.1注意:图1.1中可以看到close指向read并且标有结束连接的指示,可能有些人会有疑问,这个标注的意思是服务器在处理客户端的时候是循环读取的,如果客户端没有发送数据服务器处理客户端的线程是阻塞在read这里的,当客户端调用close后,服务器read就会立刻返回-1,这时服务器处理线程才会继续向下执行。如果客户端没有执行close而是直接异常退出,
2016-11-25 15:38:25 25717 8
原创 IntelliJ IDEA常用快捷操作
1、自动生成get set方法alt+insert2、快速注释在函数上一行输入 /** 回车,就会自动生成
2016-10-21 15:38:43 467
原创 借助QtCreator开发OpenWrt应用程序 一键远程运行解决方案
说一下自己的现实需求,在OpenWrt开发板上写应用程序已经有一段时间了,每次都是写完程序编辑makefile编译生成ipk包,手动拷贝到开发板上,运行调试,费劲。我需要借助QtCreator我们可以实现写好程序后一键远程运行于开发板上!1、下载OpenWrt源码配置编译配置编译后会在/openwrt/staging_dir/toolchain-mipsel_24kec+dsp
2016-09-25 22:21:03 4304 4
原创 QtCreator开发板远程调试
我们搭建好交叉编译环境后,不满足于pc写程序,手动移动到开发板上测试的繁琐方式。所以需要继续设置,实现写完程序,点击运行直接在开发板上运行调试。这并不难,因为qtcreator已经为我们提供了很好的自定义选项。我的qtcreator版本是4.1.01、添加一台远程设备添加之前,要确保开发板已经移植的sshd,可以通过ssh登录到开发板。如何移植我之前有写过相关文章。Tools->O
2016-09-19 10:41:24 8686
原创 斐讯路由器K2最新刷机教程
最新版固件无法刷机让人很头疼,我们需要先手动降级,把固件刷回以前版本,再用刷机工具进行刷机。1、登录路由器找到如下界面下载这个文件SW_K2_703004604_V21.4.6.12.bin在上面界面中点击浏览找到刚才下载的.bin文件,点击升级。等待几分钟后,重新连接路由器,成功即可继续。2、借助自动刷机工具刷入breed自动刷机工具下载:http://pan
2016-09-19 09:05:41 37213
原创 Ubuntu16.04交叉编译OpenCV并移植
宿主机:Ubuntu 16.04 64bit开发板:tq2440OpenCV: 2.4.3其他:arm-linux-g++ 4.4.3 / arm-linux-gcc 4.4.3CMake 2.8.10.2CMake-gui 3.5.1
2016-09-18 09:32:09 7907 2
原创 Ubuntu16.04下Qt交叉编译开发环境搭建
一、软件包介绍:1、arm-linux-gcc.tar.gz 我提供的包是arm-linux-gcc4.4.3版本,arm-linux-gcc是编译arm开发板上程序用的一种gcc。2、qt-everywhere-opensource-src-4.8.5.tar.gz 这个包是QT4.8.5的源码包,everywhere意思就是可以编译出适合各种平台的版本。3、qt-
2016-09-14 16:54:28 10528 6
原创 ubuntu16.04下配置Qt+OpenCV开发环境
系统:Ubuntu16.04 64位Qt:Qt5.7.0+Qt Creator4.0.2OpenCV:opencv-2.4.13按照上面的地址和版本下载相应Linux 64位的安装包后,就可以开始了。装系统就不说了。一、安装qt1、将下载的qt-opensource-linux-x64-5.7.0.run直接运行安装即可。2、接下来CMake的时候需要qt4,所以还需要执行$sudo apt-ge...
2016-09-03 17:52:29 10146 4
转载 CentOS将用户添加到sudoer列表
CentOS将用户添加到sudoer列表 CentOS 默认情况下,linux没有将当前用户列入到sudoer列表中(在redhat系列的linux发行版中最为常见),这时如果你使用sudo来执行某些命令的话,就会提示你该用户不再sudoer列表中。这时,我们就需要手工加入了。 1.在命令行下键入:$su ,并输入root账户的密码,切换到root账户
2016-08-08 09:20:18 5975
转载 解决Qt程序在Linux下无法输入中文的办法
一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行。不仅是Qt制作的应用程序,就连Qt Creator都无法支持。后面看了一些资料,了解了Qt应用程序的方法,这里和大家分享一下。写一个bash脚本(),内容如下:#!/bin/sh cd YourBinaryDirectory export QT_IM_MODULE=
2016-07-18 13:24:41 7208 1
原创 移植ssh到arm
我用的是天嵌的TQ2440开发板,但SSH移植不涉及到驱动什么的,所以除了交叉编译工具链应该都通用。1. 下载需要的源码:mkdir -p ~/arm/fsmkdir -p ~/arm/source下载zlib: wget -c http://www.zlib.net/zlib-1.2.3.tar.gz下载ssl:wget -c http://www.openssl.org/source/open...
2016-06-27 17:41:14 1641 6
转载 c#中list容器学习
C# List用法所属命名空间:using System.Collections.Generic; List类是 ArrayList 类的泛型等效类。 该类使用大小可按需动态增加的数组实现 IList 泛型接口。泛型的好处: 它为使用 c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
2016-06-20 11:46:57 1072
原创 centos6.5下搭建阿帕奇环境,查看静态页面
准备# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # service iptables save安装启动#yum ins
2016-06-03 21:51:29 2946
原创 centos6.5 ssh配置与使用
#rpm -qa |grep ssh 检查是否装了SSH包#yum install openssh-server 没有的话,安装SSH服务#chkconfig --list sshd 检查SSHD是否在本运行级别下设置为开机启动#chkconfig --level 2345 sshd on 如果没设置启动就设置下#service sshd restart 重新启
2016-06-03 21:04:03 3545
原创 CentOS 6.5下搭建vsftp服务器
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。 下面说说在CentOS 6.5_64位系统下安装VSFTP步骤 1.查看linux系统版本和内核信息[root@vmware1 ~]# cat /etc/issue CentOS relea
2016-06-03 08:45:52 787
转载 centos 6.5下搭建DNS服务器
1.安装DNS服务器软件2.在bind的主配置文件中添加该域3.在/var/named中创建该域的zone文件4.编辑zone文件,添加需要的信息5.检测防火墙或selinux设置6.启动bind服务,重启网络服务7.用户端测试域名解析安装bindrpm -qa | grep bind #检查DNS服务器软件
2016-06-02 21:11:25 4138
转载 centos6.5上NFS服务器搭建
项目背景:搭建NFS网络服务器!!!试验环境:vmware workstation 11centos6.5的系统下NFS服务器:ip:192.168.0.36 iptables 关闭 setenforce 0NFS客户端:ip:192.168.0.39 iptables 关闭 setenforce 0Secur
2016-06-01 21:37:54 1489
原创 OpenWrt将Python安装到U盘
1、U盘挂载,具体自己百度,挂载位置为 /mnt/sda1 root#mount /dev/sda1 /mnt/sda1mkdir /mnt/sda1/packages/2、修改opkg的配置文件echo dest usb /mnt/sda1/packages/ >> /etc/opkg.conf3、安装python到设定的U盘目录opkg updateopkg
2016-05-02 16:11:27 4664
原创 Linux操作GPIO(文件IO方式)
首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入Device Drivers->GPIO Support ->/sys/class/gpio/… (sysfs interface)。/sys/class/gpio的使用说明:gpio_operation通过/sys/文件接口操作IO端口GPIO到文件系统的
2016-04-28 21:47:37 25476 4
原创 从公网访问openwrt上用mjpeg-streamer搭建的视频监控
通过ssh反向隧道将mjpeg-streamer的视频端口代理到公网VPS(例腾讯学生云服务器)上,从而通过访问云服务器间接访问NAT下的openwrt。
2016-04-16 10:44:07 6762 4
原创 Android Studio 无法引用org.apache.http解决办法
sdk 23以上不再支持org.apache.http,你可以将降到sdk22 然后在gradle中添加compile 'com.android.support:appcompat-v7:22.2.0'非要用高版本sdk,则添加android { useLibrary 'org.apache.http.legacy'}也可以用OkHttp
2016-04-14 22:13:41 17787 2
原创 linux下/dev/dsp:No such file or directory解决方法
写了一个需要通过dsp进行音频操作的小程序,执行时却提示/dev/dsp:No such file or directory$ls /dev目录下并没有dsp这个文件解决方法很简单:$sudo mknod /dev/dsp c 14 3$sudo chmod 666 /dev/dsp
2016-03-19 11:40:26 10967 2
原创 细谈select函数(C语言)
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式
2016-03-18 21:07:27 893
转载 Git常用命令
查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区
2016-03-13 22:15:29 459
原创 openwrt添加一条开机自动执行的命令
修改:/etc/rc.local在exit 0前面填写要执行的命令即可如开机自动执行挂载U盘root@OpenWrt:/# vi /etc/rc.local # Put your custom commands here that should be executed once# the system init finished. By default this
2016-03-08 15:26:08 15824
原创 openWrt挂载U盘
1、需求:挂载fat32格式的U盘2、挂载U盘所需要的包1)komd-usb-ohci kmod-usb2 kmod-usb-storage kmod-usb-core 这些是USB驱动包2) kmod-nls-base kmod-nls-cp437 kmod-nls-iso8859-1 这些是语言包3) kmod-fs-vfat 文件系统支持vfat 类型
2016-02-17 13:00:43 2512
转载 Ubuntu 解决重启后resolv.conf重置的问题
最近发现新装的Ubuntu 每次重启后,/etc/resolv.conf里面设置的nameserver就被清空这跟以前用RHT系的 情况是完全不一样的: 在google上搜了一下,发现这里面还真有些奥妙: 1 /etc/resolv.conf 其实是一个Link 它其实指向的是 /run/resolvconf/resolv.conf 2 Ubuntu 有一个 r
2016-02-07 06:30:22 6009
原创 CentOS6.5下修改MySQL编码方法
1. 找到mysql的配置文件,拷贝到/etc目录下,第一步很重要 使用find命令查找cnf文件。记得不要去找my.cnf因为它不一定存在,而应该找*.cnf。 [root@Web_Mysql ~]# find / -iname "*.cnf" -print /usr/share/mysql/my-huge.cnf /usr/share/mysql/my-sm
2016-02-04 00:44:17 557
飞机大战(C++)
2015-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人