0%

1、TCP/IP协议组

TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。

  • IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。
  • TCP层负责面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象。

TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:

  • 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;
  • 传输层:TCP协议与UDP协议;
  • 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议;
阅读全文 »

在openwrt开发过程中需要数据的发送和接受,此时传输数据的格式就有很多种了,今天简单介绍一下openwrt系统中JSON数据的处理方法

假设有一个JSON文件

1
2
3
4
5
6
7
8
9
10
11
12
cat /etc/ss.json
{
"server": "8.8.8.8",
"server_port": 443,
"local_address": "0.0.0.0",
"local_port": 7070,
"password": "fuckgfang",
"method": "aes_128_ctr",
"timeout": "60",
"protocol": "auth_aes128_sha1",
"fast_open": false
}

阅读全文 »

openwrt交叉编译生成应用,openwrt已经编译好了,现在编译一个单独的部件安装到树莓派或者路由上。

首先我们在openwrt/package/下建立helloworld文件夹

然后在helloworld文件夹下创建src文件夹

在src文件夹中,我们创建helloworld.c文件和Makefile文件

阅读全文 »

C#中SaveFileDialog 和OpenFileDialog 的用法
本文通过几个示例来说明SaveFileDialog 和OpenFileDialog 的用法
1.OpenFileDialog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = @"C:\Users\LWP1398\Desktop"; //设置初始路径
ofd.Filter = "Excel文件(*.xls)|*.xls|Csv文件(*.csv)|*.csv|所有文件(*.*)|*.*"; //设置“另存为文件类型”或“文件类型”框中出现的选择内容
ofd.FilterIndex = 2; //设置默认显示文件类型为Csv文件(*.csv)|*.csv
ofd.Title = "打开文件"; //获取或设置文件对话框标题
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
//FileName:所选文件的全路径 SafeFileName:所选的文件名
txtPath.Text = "FileName:" + ofd.FileName + "\r\n" + "SafeFileName:" + ofd.SafeFileName;
}
}
阅读全文 »

1.查进程
​ ps命令查找与进程相关的PID号:
​ ps a 显示现行终端机下的所有程序,包括其他用户的程序。
​ ps -A 显示所有程序。
​ ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
​ ps -e 此参数的效果和指定”A”参数相同。
​ ps e 列出程序时,显示每个程序所使用的环境变量。
​ ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
​ ps -H 显示树状结构,表示程序间的相互关系。
​ ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
​ ps s 采用程序信号的格式显示程序状况。
​ ps S 列出程序时,包括已中断的子程序资料。
​ ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
​ ps u 以用户为主的格式来显示程序状况。
​ ps x 显示所有程序,不以终端机来区分。

最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
阅读全文 »

dlib的安装教程

1.下载cmake

1
pip install cmake

2.下载scikit-image

1
pip install scikit-image

3.下载dlib(现在的新版本不需要Boost)

1
pip install dlib

也可以使用源码安装,这种方法出错率比较低

注:在安装时可能会出现这种情况,等待过一会就好了,如果不好使就换一个版本试试

img

多等一会一般都能成功。

之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱、url等信息)

configparser模块

python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件

在使用前需要先安装该模块,使用pip安装即可

configparser读取文件的基本方法

(1)新建一个config.ini文件,如下

阅读全文 »

urllib库使用方法

urllib库是python的内置库,不需要单独下载。其主要分为四个模块:

1.urllib.request——请求模块

2.urllib.error——异常处理模块

3.urllib.parse——url解析模块

4.urllib.robotparser——用来识别网站的robot.txt文件(看看哪些内容是可以爬的,不常用)

阅读全文 »

参考链接:
1、http://www.embed-net.com/thread-139-1-1.html
2、http://www.embed-net.com/thread-139-1-1.html

前言

玩过单片机的同学就知道,你的第一个单片机程序可能就是点亮一个LED灯,下面我们也通过点亮一个LED为目的来介绍下树莓派的GPIO使用方式。

树莓派GPIO控制有以下三种方式:

RPI.GPIO

该库更确切的名称为raspberry-gpio-python,树莓派官方资料中推荐且容易上手。RPI.GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作。但是RPI.GPIO库还没有支持SPI、I2C或者1-wire等总线接口。除了RPI.GPIO之外,还有众多的python扩展库(例如webiopi),毫无疑问的说python非常适合树莓派,树莓派也非常适合python。

wiringPi

wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等,毫无疑问地说wiringPi功能非常强大。

BCM2835 C Library

BCM2835 C Library可以理解为使用C语言实现的相关底层驱动,它给我的感觉更像STM32的库函数,BCM2835 C Library的驱动库包括GPIO、SPI和UART等,可以通过学习BCM2835 C Library熟悉BCM2835相关的寄存器操作。如果有机会开发树莓派上的linux驱动,或自主开发python或PHP扩展驱动,可以从BCM2835 C Library找到不少的“灵感”。

阅读全文 »

记录一下如何设置字体颜色和大小

1
2
<font color=red size=5>gray</font>
<font color="#4590a3" size="6px">文字</font>

效果如下:

gray 文字