Coding 博客

  • 首页

  • 归档

  • 分类

  • 标签

golang-Channels

发表于 2018-02-12 | 更新于 2018-06-06 | 分类于 golang

Golang–Channels(通道)

一. 通道创建

以最简单方式调用make函数创建的是一个无缓存的channel,但是我们也可以指定第二个整型参数,对应channel的容量。如果channel的容量大于零,那么该channel就是带缓存 channel。
channel 容量 > 0 即带有缓冲的通道

1
2
3
4
5
6
7
 // 创建无缓冲的的通道
ch := make(chan int)
ch1 := make(chan int, 0)

// 创建有缓冲的通道
ch := make(chan int, 1)
ch1 := make(chan int, 3)

二. 通道发送和接收

1
2
3
4
5
6
//  发送数据到通道
ch := make(chan int)
ch <- 1

// 从通道中接收数据
<- ch

三. 通道的箭头使用, 注意点。

  1. chan <- int 只发送int 的channel, 只能发送不能接收。
  2. <- chan int 表示一个只接收int 的int channel, 只能接收不能发送。
  3. 箭头 <- 和关键字chan 的相对位置表明了channel 的方向。
  4. 这种限制将在编译期检测。

Scrapy-Socks5代理中间件

发表于 2018-01-05 | 更新于 2018-06-06 | 分类于 爬虫

Scrapy-Socks5代理中间件

Demo

环境: Python(2.7+) + Scrapy(1.1.1) + Twisted(16.6.0)
官网没直接提供Socks 代理中间件 。
所以写一个代理中间件 。
需要依赖库 txsocksx 。
pip install txsocksx

阅读全文 »

python 设计模式-适配器模式

发表于 2017-12-11 | 更新于 2018-06-06 | 分类于 python

Python 设计模式–适配器模式

阅读全文 »

golang rsa 加密

发表于 2017-12-11 | 更新于 2018-06-06 | 分类于 golang
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main


import (
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"crypto/sha1"
"fmt"
"bytes"
"encoding/hex"
"strings"

)

// js 加密算法
// var encrypted = CryptoJS.AES.encrypt(sendData, key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7});
// 换成Golang 加密 实现一遍

const appKey = "00003";
const appKeySecret = "754DHA8DHPN976DS";
const versionName = "1.0"
阅读全文 »

golang sign 加密算法,仿某网站js sign加密算法

发表于 2017-12-10 | 更新于 2018-06-06 | 分类于 golang

demo

1
2
3
4
5
6
7
8
9
10
11
12
package main

import (
"math"
"math/rand"
"time"
"fmt"
"strconv"
"crypto/md5"
"encoding/hex"

)
阅读全文 »
123
Coding

Coding

个人博客

11 日志
6 分类
6 标签
© 2019 Coding
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Pisces v6.3.0