自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 grpc_python分析起步

文章目录工具要求安装grpc安装grpc工具下载示例代码文件结构分析helloworld.protohelloworld_pb2_grpc.pygreeter_server.pygreeter_client.py工具要求ubuntu20.04Python 3.5 或更高版本pip 9.0.1 或更高版本安装grpcpython -m pip install grpcio安装grpc工具python -m pip install grpcio-tools下载示例代码git clone

2021-12-12 17:57:15 645

原创 python中的赋值、标准数据类型、类型转换

文章目录变量赋值标准数据类型'string'(用单引号标识)[list](用方括号标识)(tuple)(用圆括号标识){dictionary}(用花括号标识)python数据类型转换变量赋值Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号 = 用来给变量赋值。等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值。Python允许你同时为多个变量赋值:a =

2021-12-08 20:45:09 335

原创 python编程方式和中文编码

文章目录python编程方式交互式编程脚本式编程python中文编码参考:python基础-菜鸟教程python编程方式交互式编程脚本式编程通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。test.py:#! /usr/bin/pythonprint ("hello world!")关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释

2021-12-08 20:43:50 150

原创 python调试工具pdb基本使用

文章目录概述pdb使用查看源代码断点添加断点添加临时断点清除断点打印变量值调试命令逐行调试命令非逐行调试命令查看函数参数打印变量类型启动交互式解释器打印堆栈信息退出pdb参考:https://zhuanlan.zhihu.com/p/37294138概述交互式源代码调试器支持:源码行间设置(有条件的)断点和单步执行监视堆栈帧列出源码列表,以及在任何堆栈帧的上下文中运行任意 Python 代码事后调试实质:pdb类pdb使用两种用法:非侵入式方法不额外修改源代码,在命令行直接运行就能

2021-12-08 20:42:45 669

转载 python环境管理器miniconda

文章目录如何安装miniconda?什么是miniconda?condapipconda分项目管理查看当前有哪些python版本以及如何切换:创建conda环境迁移依赖参考:https://mofanpy.com/tutorials/python-basic/interactive-python/py-install-env/如何安装miniconda?官网:https://docs.conda.io/en/latest/miniconda.html#linux-installers选择其中一个版

2021-12-05 18:08:30 635 4

原创 CRC循环冗余校验详解

CRC循环冗余校验详解简介CRC手动演算CRC的直观运算过程简介https://www.bilibili.com/video/BV1V4411Z7VA?from=search&seid=3373767585328853317&spm_id_from=333.337.0.0这个视频里讲的很明了透彻,本文章主要是对该视频内容做的笔记。CRC手动演算CRC的直观运算过程...

2021-10-03 21:30:31 561

原创 UDP套接字通信程序设计

UDP套接字通信程序设计通信流程如下图所示:

2021-07-12 10:28:16 67

原创 UDP套接字编程 的函数---Unix网络编程笔记

UDP套接字编程 的函数---Unix网络编程笔记recvfrom\sendtorecvfrom\sendto#include <sys/socket.h>ssize_t recvfrom(int sockfd,void *buff,size_t nbytes, int flags,struct sockaddr *from.socklen_t *addrlen);//描述符,读入或写出的缓冲区指针,读写字节数,//常置为零,数据发送者的1套接字地址结构,该结构中填写的字节

2021-07-12 10:27:50 60

原创 Linux时间---Linux系统编程笔记

Linux时间时间的数据结构原始表示微秒级精度纳秒级精度标准C提供的便于理解的时间格式进程时间类型POSIX时钟时间源精度取得当前时间time函数(秒级)gettimeofday函数(微秒级)clock_gettime函数(纳秒级)获得进程时间设置当前时间stime函数(秒级)settimeofday函数(微秒级)clock_settime函数(纳秒级)Linux衡量时间的三种方式:墙钟时间、进程时间、单调时间Linux的绝对时间:新纪元至今经过的秒数。新纪元(格林威治时间):1970年1月1日0时

2021-07-12 10:27:41 858

原创 Linux线程---Linux系统编程笔记

Linux线程

2021-07-12 10:27:18 53

原创 TCP回射服务器---Unix网络编程笔记

TCP回射服务器---Unix网络编程笔记回射服务器程序回射客户端程序正常建立(三次握手)、正常终止(四次挥手)进程终止之僵死进程POSIX信号处理信号行为回射服务器程序#include "unp.h"void str_echo(int sockfd){ ssize_t n; char buf[MAXLINE];again: while ( (n = read(sockfd, buf, MAXL

2021-07-12 10:26:58 117

原创 TCP套接字编程的函数---Unix网络编程笔记

TCP套接字函数start:int socket(int family,int type,int protocol);int connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen);int bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen);int listen(int sockfd, int backlog);int accept(int soc

2021-06-19 14:25:34 110

原创 字节操纵函数(套接字地址的清零)

字节操纵函数字节操纵函数源自4.2BSD以b开头的一组函数源自ANSI C标准以mem开头的第二组函数字节操纵函数源自4.2BSD以b开头的一组函数#include <string.h>void bzero(void *dest,size_t nbytes);void bcopy(const void *src,void *dest,size_t nbytes);void bcmp(const void *ptrl,const void *ptr2,size_t nbytes);

2021-06-19 14:24:49 87

原创 地址转换函数(点分十进制与网络字节序的二进制)

地址转换函数第一组函数第二组函数1、inet_aton \ inet_addr \ inet_ntoa 在点分十进制与网络字节序的二进制之间转换IPv4地址。2、inet_pton \ inet_ntop 对于IPv4和IPv6地址都适用。第一组函数n代表网络字节序的二进制数串a代表点分十进制字符串#include <arpa/inet.h>int inet_aton(const char *strptr, struct in_addr *addrptr);//将strptr所

2021-06-19 14:23:31 694

原创 字节排序问题

字节排序问题字节排序问题字节排序问题小端字节序:变量的低位 存储在 内存地址的低位。主机字节序:某个给定操作系统的字节序,不同操作系统的字节序不同,可能是大端也可能是小端。网络字节序:规定网络传输信息的时候使用的字节序,一般为大端字节序。四个字节序转换函数:#include <netinet/in.h>uint16_t htons(uint16_t host16bitvalue);uint32_t htonl(uint32_t host32bitvalue); //返回网络字节

2021-06-19 14:22:09 102

原创 如何给套接字地址赋值(IPv4)?

如何给套接字地址赋值struct sockaddr_in{ //16 bytes uint8_t sin_len; //1 byte sa_family_t sin_family; //1 byte in_port_t sin_port; //2 bytes struct in_addr sin_addr; //4 bytes char sin_zero[8]; //unused 8 bytes}struct in_addr{ //为什么一个元素还用结构体包裹? in_addr_t s_

2021-06-19 14:21:45 605

原创 进程fork和exec ---Unix网络编程笔记

进程fork和exec---Unix网络编程笔记fork一次调用,两次返回fork的两个典型用法最简单的并发服务器---fork子进程exec—Unix网络编程笔记)fork#include <unistd.h>pid_t fork(void);一次调用,两次返回fork在父进程中返回子进程的进程ID号,fork在子进程返回0。返回值告知当前进程是子进程还是父进程。子进程如果想得到父进程的进程ID,可以调用getppid。fork的两个典型用法(1)一个进程创建一个自身的副本

2021-05-20 20:51:16 131

超方便串口调试工具UartAssist.zip

UART调试

2021-10-03

超方便的桌面截图软件Setuna.zip

超方便的桌面截图软件

2021-10-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除