云溪的 blog
  • Archive
  • Media
  • Search
  • Tags
  • About
Home

Posts

Main and Render  [draft]

创建窗口 new BrowserWindow() 创建 tray

April 3, 2019 · 1 min · 云溪

VS Code golang debug 配置

实现效果 安装 delve windows go get -u github.com/go-delve/delve/cmd/dlv linux 方式一: go get -u github.com/go-delve/delve/cmd/dlv 方式二 $ git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve $ cd $GOPATH/src/github.com/go-delve/delve $ make install 注意: 若果你go版本为1.5需要设置GO15VENDOREXPERIMENT=1 OSX $ go get -u github.com/go-delve/delve/cmd/dlv 执行上述代码前,确保你电脑上有编译工具 设置 launch.json 配置文件 ctrl+shift+p 输入 Debug: Open launch.json 打开 launch.json 文件,如果第一次打开,会新建一个配置文件,默认配置内容如下 { "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", "env": {}, "args": [] } ] } 常见属性如下 ...

March 25, 2019 · 2 min · 云溪

vue安装  [draft]

项目结构 project ├─public │ ├─favicon.ico │ └─index.html ├─src │ ├─assets │ │ └─logo.png │ └─components │ └─HelloWorld.vue ├─babel.config.js ├─package-lock.json └─package.json

March 20, 2019 · 1 min · 云溪

vscode 自定义代码片段

实现效果 起因 最近在写一个全新的项目,在项目中频繁创建各种类,这就导致很多重复的东西需要频繁的写,例如类名,命名空间,继承关系…那么有没有一种 办法能解决这个问题呢? 提出设想 我想起了,最初用 sublime text 的时候,可以利用代码片段功能大段的生成html代码,当时就觉得十分的方便,那么 vscode 有没有这个功能呢?经过 google 之后我知道 vscode 是有代码片段功能的。既然有了想法,也具备了基础实施条件,那么接下来开始尝试实现之前的想法。 资料查询 经过一番 google 后发现对于 vscode snippet 介绍都在相对基础的简单应用(只是一些插入固定代码和光标介绍),者显然无法实现我们生成类名和明明空间的想法,google 无果,那么只能看看 vscode 官方文档果然有意想不到的收获,看完官网介绍后,基本就确定此路是可行的。 snippet 示例 在 File > Preferences (Code > Preferences on macOS) 中选择 User Snippets 在弹出框里选择对应的代码片段语言,我这里使用的是php "Print to console": { "prefix": "log", "body": [ "console.log('$1');", "$2" ], "description": "Log output to console" } 在打开的 php.json 中有示例代码: Print to console 代码片段名称 prefix 插件前缀 body 插件内容可以是字符串,也可以为数组,若为数组每个元素都做为单独的一行插入。 description 插件描述 Snippet 语法 制表位(Tabstops) 使用制表位(Tabstops)可是在代码片段中移动光标位置,使用$1,$2来指定光标的位置,数字代表光标的移动的顺序,值得注意的时$0代表光标的最后位置。如果有多个相同的制表位(Tabstops)会在编译器里同时出现多个光标(类似编译器的块编辑模式)。 ...

March 9, 2019 · 2 min · 云溪

detail  [draft]

网络模型 国际标准组织(ISO)制定了OSI模型。这个模型把网络通信的工作分为7层。1至4层被认为是低层,这些层与数据移动密切相关。5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。 而在我们实际应用中分为五层,如上图tcp/ip就是分了五层,越往上就越靠近用户,越往下越靠近硬件。 层与协议 每一层都完成一种功能,为了完成这些功能,就需要共同遵守 一些规则,而这些规则就叫做“协议”(protocol) 网络的每一层,都定义了很多协议。这些协议的总称,叫“TCP/IP协议”。它是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。这里需要注意,TCP/IP协议是一个大家族,不仅仅只有TCP和IP协议,它还包括其它的协议,如下图: 物理层 两台计算机进行通讯 ,首先要做的就是将两台计算机进行连接 。物理层主要作用是将两台计算机通过有线介质(双绞线、光纤)或无线介质(无线电、微波、激光、红外线)进行连接,物理层传输的数据 只有0和1 链路层 定义 单纯的 0 和 1 没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义?这就是“链接层”的功能,它在“物理层”的上方,确定了 0 和 1 的分组方式。 以太网协议 早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做“以太网”(Ethernet)的协议,占据了主导地位。 以太网规定,一组电信号构成一个数据包,叫做“帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。 “标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;“数据"则是数据包的具体内容。 “标头”的长度,固定为 18 字节。“数据"的长度,最短为 46 字节,最长为 1500 字节。因此,整个"帧"最短为 64 字节,最长为 1518 字节。如果数据很长,就必须分割成多个帧进行发送。 MAC 地址 上文提到标头里存者发送者和接收者信息,那么发送者和接收者是如何标识的呢? 以太网规定,连接网络的所有设备,都必须具有“网卡”接口。数据包必须从一个网卡传输到另一个网卡。通过网卡能够使不同的计算机之间连接,从而完成数据通信等功能。网卡的地址,就是数据包的发送地址和接收地址,这叫做 MAC 地址。 MAC地址,用于标识网络设备,类似于身份证号。每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址(理论上全球唯一),长度是 48 个二进制位,通常用 12 个十六进制数表示。 网络层 网络层的由来 以太网协议,依靠 MAC 地址发送数据。理论上,单单依靠 MAC 地址,北京的网卡就可以找到深圳的网卡了,技术上是可以实现的。 但是,这样做有一个重大的缺点。以太网采用广播方式发送数据包,所有成员人手一“包”,不仅效率低,而且局限在发送者所在的子网络。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难(广播风暴)。 互联网是无数子网络共同组成的一个巨型网络,很像想象北京和深圳的电脑会在同一个子网络,这几乎是不可能的。 因此,必须找到一种方法,能够区分哪些 MAC 地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用“路由”方式发送。(“路由”就相当于现象生活中的路标,规定这些数据包的走向,就是指如何向不同的子网络分发数据包,这是一个很大的主题,本文不涉及。)遗憾的是,MAC 地址本身无法做到这一点。它只与厂商有关,与所处网络无关. ...

February 27, 2019 · 1 min · 云溪
« Prev  Next  »
© 2025 云溪的 blog