- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 使用golang实现websocket编程
第三方库github.com/gorilla/websocketServerpackage mainimport ( "fmt" "net/http" "time" "github.com/gorilla/websocket")func chat(w http.ResponseWriter, r *http.Request) { conn, err := (&w...
2019-01-17 15:16:06 1208
原创 使用golang操作redis
使用第三方开源库 github.com/gomodule/redigo/redispackage mainimport ( "fmt" "github.com/gomodule/redigo/redis")// 普通连接func Redis() (conn redis.Conn, err error) { conn, err = redis.Dial("tcp", "127....
2019-01-17 11:56:03 352
原创 Golang使用正则下反引号,双引号引发的问题
Golang的正则匹配中反引号``和转义字符是不能共存的:package mainimport ( "fmt" "regexp")func check(pattern string) { src := "abc123一二三①②③" fmt.Println(src) reg := regexp.MustCompile(pattern) fm...
2019-01-16 13:53:32 6237
原创 使用golang操作protobuf
Protobuf语法proto2语法proto3语法编写proto文件chat.protosyntax = "proto3";package chat;message ReqSendChatMsg{ string msg = 1;}message ResSendChatMsg{ uint32 ret = 1; st...
2019-01-15 16:25:33 331
原创 Golang实现一个简单的网络编程
Server:package mainimport ( "fmt" "io" "net")func handle(conn net.Conn) { defer conn.Close() ip := conn.RemoteAddr().String() fmt.Printf("new client:%s\n", ip) for { buff := make([]byte...
2019-01-10 09:14:39 1253
原创 Linux网络编程常用的管理维护命令netstat/top/lsof/tcpdump
1. netstatnetstat用于显示网络状态,使用netstat可以让你很轻松的获得整个linux的网络情况。netstat [选项]-a或–all:显示所有连线中的Socket;-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;-c或–continuous:持续列出网络状态;-C或–cache:显示路由器配置的快取信息;-e或–ext...
2019-01-09 16:58:41 457
原创 浅谈select、poll、epoll
什么是I/O多路复用I/O多路复用是通过一种机制可以监听多个描述符,一旦某个描述符就绪(读就绪或者写就绪)能够通知程序进行相应的操作。常见的几种I/O多路复用函数select、poll、epoll。1. selectselect监听三种文件描述符:readfds:指向一组等待可读性检查的套接口writefds:指向一组等待可写性检查的套接口exceptfds:指向一组等待错误检查的套...
2019-01-09 16:56:50 138
原创 HTTP详解
浏览器上浏览一个网页到底经历了什么?输入URL:https://xlxing.github.io/URL:统一资源定位符浏览器将xlxing.github.io发送给DNS服务器,请求解析为IP地址。HTTP是基于TCP的,这时候我们首先要进行三次握手建立连接。构建HTTP请求HTTP报文构成(状态行-首部字段-请求体)POST /admin/v2/create HT...
2019-01-09 16:55:12 1710
原创 使用Golang操作Mysql
github开源包:https://github.com/go-sql-driver/mysql安装开源包go get -u github.com/go-sql-driver/mysql表数据uidnameage1zhangsan212lisi223wangwu22连接数据库db, err := sql.Open("mysql", "r...
2019-01-09 16:53:57 3520
原创 排序算法详解(Golang实现)
1. 冒泡排序1.1 算法思想将序列中的左右元素依次比较,保证右边的数大于左边的数对序列中剩余的n-1个元素执行n-1次以上的步骤1.2 代码实现func bubble_sort(arr []int) { length := len(arr) for i := 0; i < length-1; i++ { for j := i + 1; j &l...
2019-01-09 16:52:04 378
原创 TCP-UDP详解
1. UDP详解1.1 什么是UDP?UDP(User Data Protocol,用户数据报协议):属于传输层的协议,无连接,UDP适用于一次传输少量数据,对可靠性要求不高的应用环境。不可靠(不保证不丢失,不保证按顺序到达)基于数据报(一个一个地发,一个一个地收)无状态(发出去就完事了,啥都不管)无控制(不会根据外部环境(网络环境)来进行发包控制,应用让发就发,什么都不考虑)1...
2019-01-09 16:49:00 599
原创 golang实现的一个扫描指定文件夹下所有中文所在行的小工具
由于逻辑比较简单废话不多说直接上代码:package mainimport ( "bufio" "fmt" "io" "io/ioutil" "os" "strings" "unicode")var write *os.Filefunc IsChineseChar(str string) bool { for _, r := rang
2018-04-01 19:52:36 1558
原创 经典面试题golang实现方式(一)
以下所有题目的关键信息都会用【】括起来,我们不对题目进行分析,只给出题目的解决方案;如有疑问请不吝赐教。题目: 请实现一个算法,确定一个字符串的所有字符【是否全都不同】。这里我们要求【不允许使用额外的存储结构】。给定一个string,请返回一个bool值,true代表所有字符全都不同,false代表存在相同的字符。保证字符串中的字符为【ASCII字符】。字符串的长度小于等于【3000】。代码实现:
2017-12-07 23:49:37 2589
原创 golang实现常用的排序算法
以下排序算法的思想网上都可以搜到相对应的介绍,这里不再赘述,直接给出代码实现:package mainimport ( "fmt")// 冒泡排序func bubbleSort(s []int) { for i := 0; i < len(s); i++ { for j := i + 1; j < len(s); j++ { if s[i]
2017-12-04 23:06:53 554
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人