- 博客(9)
- 收藏
- 关注
转载 迭代和递归的区别
1,迭代使用的是循环结构,递归使用的是选择结构。2,递归能使程序的结构更清晰、更简洁、更容易让人理解,从而减少读懂代码的时间。但是大量的递归调用会建立函数的副本,会耗费大量的时间和内存。迭代则不需要反复调用函数和占用额外的内存。...
2018-10-29 19:51:51
270
原创 redis操作
redis是key-value存储的数据结构,每条数据都是一个键值对值的类型分为5中string 该类型可以接受任意类型的数据,但是value最大容纳的数据长度512mhash 用于存储对象,对象的结构为属性和值list 列表的元素类型为string,按照插入顺序排序set :无序集合,元素为string类型,元素具有唯一性,不重复,没有修改操作zset:有序集合,元素为string...
2018-10-26 21:29:24
218
原创 udp-cs客户端模型
package mainimport ( "net" "fmt" "os" "io")func main() { //创建连接 conn, err := net.Dial("udp", "127.0.0.1:8888") defer conn.Close() if err != nil { fmt.P
2018-08-31 21:48:08
273
原创 udp-cs服务器模型
package mainimport ( "net" "fmt" "bytes")func main() {//创建socket UDPAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8888") if err != nil { fmt.Println("ResolveUDPAd.
2018-08-31 21:46:07
275
原创 TCP-CS文件传输-接收端
思路: 1,创建监听套节字 2,阻塞等待发送端连接请求 3,读取文件名,保存 4,回执发送端“ok“ 5,创建文件,保存发送端发来的数据 1)创建文件 2)从conn中读取buf 3)把buf写入新创建的文件中 4)判断文件读完写完,关闭文件,关闭conn,断开连接package mainimport (...
2018-08-31 20:02:54
399
原创 TCP-CS文件传输-发送端
思路: 1,创建连接请求 2,通过命令行参数,提取文件名(带路径)os.Args 3,获取文件属性,获取文件名(不带路径)os.Stat() 4,发送文件名给接收端 5,验证接收端是否回应,在此用回执“ok“字符串判断 6,如果接收成功,则进行文件发送操作 1),以只读方式打开待发送文件 2),读指定文件到buf中 3),把读到的文件写入...
2018-08-31 19:27:49
786
原创 tcp-cs客户端模型
package mainimport ( "net" "fmt" "os")func main() { //创建连接 conn, err := net.Dial("tcp", "127.0.0.1:8888") if err != nil { fmt.Pri
2018-08-30 22:04:28
325
原创 tcp-cs服务器模型
package mainimport ( "net" "fmt" "bytes")func main() { //创建socket Listener, err := net.Listen("tcp", "127.0.0.1:8888") if err != nil {
2018-08-30 21:32:03
432
原创 channel死锁
package mainimport ( "fmt" "time")//单向写通道(生产者):func producer(send chan<- int) { for i := 0; i < 3; i++ { send <- i fmt.Println("生产者:",
2018-08-25 22:26:38
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人