golang实现简易TCP服务以及TCP和UDP协议对比

引言 ECHO(Echo Protocol,回绕协议,应答协议,如linux中的echo命令),用于查错及测量应答时间(运行在TCP和UDP协议上)本文示例为echo协议,服务器只需把收到的客户端的请求数据发给这个客户端即可,其它什么功能都不做。 tcp/ip是一个协议簇(族),TCP(传输控制协议)和IP(网际协议)是此协议簇的核心。七层OSI模型中,tcp/udp在传输层,而ip在网络层。 OSI七层协议由上到下分别是:应用层(http,https),表示层(简单地说不同计算机通信会话进行表...阅读全文

www.allocmem.com 2017-03-25 23:57 www.allocmem.co 等

简析超文本传输协议(HTTP,HyperText Transfer Protocol)

http 超文本传输协议(HTTP,HyperText Transfer Protocol) http request结构: request line: 请求行 包含请求的方法(如get,post) 请求资源路径(URL,URL总是以/开头,/就表示首页) HTTP协议版本号 request head: 其他重要请求信息 如服务器生成的response给浏览器的cookie,后面的请求携带在request head中(Cookie是由服务器创建的,然后通过response响应发送给客户端的一个键...阅读全文

www.allocmem.com 2017-03-25 00:40 www.allocmem.co 等

go协程goroutine与Java多线程比较

引言: 个人理解的线程,协程和单,多核线程 单核CPU上运行的多线程程序, 同一时间只能一个线程在跑, 系统帮你切换线程而已(cpu时间切片), 系统给每个线程分配时间片来执行, 每个时间片大概10ms左右, 看起来像是同时跑, 但实际上是每个线程跑一点点就换到其它线程继续跑,效率不会有提高的,切换线程反倒会增加开销(线程的上下文切换),宏观的可看着并行,单核里面只是并发,真正执行的一个cpu核心只在同一时刻执行一个线程(不是进程)。 多线程的用处在于,做某个耗时的操作时,需要等待返回结果,这时...阅读全文

www.allocmem.com 2017-03-24 17:13 www.allocmem.co 等

ubuntu 安装本地版storm并运行WordCount

前言: 开始从apache下载的最新版1.0.3,本地安装没有问题,但是当执行example-wordcount的时候报错找不到主类,后来解压jar包发现,1.03里面没有wordcount,有一些其他的类,于是第二次去下载安装了一个早期版本0.9.6,成功执行。 关于1.0.3和0.9.6的配置异同,可参考官方文档地址http://storm.apache.org/releases/1.0.3/Setting-up-a-Storm-cluster.html 和http://storm.apac...阅读全文

www.allocmem.com 2017-03-05 00:17 www.allocmem.co 等

自己写GoBinaryHead 二叉堆binaryheap实现优先队列(堆)

##前言: java GoBinaryHead二叉堆binaryheap实现优先队列(堆) 1. 二叉堆是完全二叉树 因为完全二叉数的规律(root始终最小) 用数组实现此数据结构优于链表 2. ,注意在插入和删除时,需要在数组实现的完全二叉树结构代码中,对原有节点数据进行上滤和下滤,插入时,和子树的根节点比较, 只有比子树根节点大才能满足定义, 否则循环交换位置。堆内元素向下移动为 下滤,删除后空余的位置,从上至下找最小儿子节点填充 3. 在printHeap()方法中对数组的遍历使用了去nu...阅读全文

www.allocmem.com 2017-03-03 18:13 www.allocmem.co 等

自己写GoBinarySearchTree 二叉查找树

前言:   java GoBinarySearchTree的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。 正文: GoBinarySearchTree.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; /** * Created by zhoudazhuang on 17-3-2. * Description: AnyType extends Comparable<? super AnyType> * ...阅读全文

www.allocmem.com 2017-03-02 23:26 www.allocmem.co 等

自己写Stack 实现栈结构

前言: 栈的应用: 1. 可计算数学后缀表达式 2. 把正常中缀表达式转换为后缀表达式 3. 计算检测编译程序{}等括号符号是否正确,是否存在语法错误 4. 递归中需要实用栈存储方法信息,计算机中函数调用是通过栈(stack)这种数据结构实现,在递归中调用一层函数,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。 正文: java中使用数组实现栈 package com.anteoy.dataStructuresAndAlgorithm.javav2; import java.util.Ar...阅读全文

www.allocmem.com 2017-03-02 14:42 www.allocmem.co 等

[转]在Java中谈尾递归-

我不是故意在JAVA中谈尾递归的,因为在JAVA中谈尾递归真的是要绕好几个弯,只是我确实只有JAVA学得比较好,虽然确实C是在学校学过还考了90+,真学得没自学的JAVA好 不过也是因为要绕几个弯,所以才会有有意思的东西可写,另外还有我发现把尾递归如果跟JAVA中的GC比对一下,也颇有一些妙处(发现还没有人特地比较过) (不过后来边写边整理思路,写出来又是另一个样子了) 转载请注明:博客园-阁刚广志,地址:http://www.cnblogs.com/bellkosmos/p/5280619.h...阅读全文

尾递归和垃圾回收的比较 2017-03-02 12:39 尾递归和垃圾回收的比较

自己写LinkedList GoLinkedList

##前言:   java GoLinkedList的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。 ###正文: GoLinkedList.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; import java.util.Iterator; /** * Created by zhoudazhuang on 17-3-1. * Description: 简易Linkedlist实现 */ public c...阅读全文

www.allocmem.com 2017-03-01 22:24 www.allocmem.co 等

docker使用容器ubuntu安装mongodb

前言:   最近准备使用docker安装一个mongo,可以使用Docker Hub上的镜像,后来就琢磨着自己用dockerfile来构建,后来在使用dockerfile构建过程中,因为TC网络环境,部分资源始终下载不了,后在容器中使用apt-get ppa依旧如此,最后决定使用mongo官网压缩包到容器里面安装,一切顺利。 安装过程: 从docker Hub上拉去ubuntu image docker pull ubuntu:16.04 交互式(-i),进入/bin/bash(-t),目录挂在...阅读全文

www.allocmem.com 2017-02-25 23:23 www.allocmem.co 等

nginx搭配frp进行端口和服务转发

###引言:   java接入三方运营商服务接口,需要可供回调的公网接口,并在本地两台(及以上)调试接口服务,于是使用开源frp进行穿透,nginx搭配负责分发请求到不同机器。 ###安装环境: 1. ubuntu 16.04 LTS 一台服务器 两台客户机 2. 已安装好nginx ###frp配置过程: 参考我之前博文[http://blog.csdn.net/yan_chou/article/details/53406095](http://blog.csdn.net/yan_chou/a...阅读全文

www.allocmem.com 2017-02-20 16:06 www.allocmem.co 等

java递归简析

引言: 1. 给定一个整数,依次打印其没每位上的数字 想法: 1. 把数字转为String,再转为char,最后放入char[],逐个打印 2. 递归 代码: package com.anteoy.dataStructuresAndAlgorithm.javav2; /** * Created by zhoudazhuang on 17-2-16. * Description: */ public class PrintString { public static void main(Strin...阅读全文

www.allocmem.com 2017-02-17 10:18 www.allocmem.co 等

[转]Java中使用OpenSSL生成的RSA公私钥进行数据加解密

本文出处:http://blog.csdn.net/chaijunkun/article/details/7275632,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。 RSA是什么:RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加...阅读全文

www.allocmem.com 2017-02-16 16:37 www.allocmem.co 等

GO语言中封装,继承,和多态

##封装 go中的封装和java的不太一样,在go里面是没有java中的class,不过可以把struct看成一个类,封装可以简单地看作对struct的封装,如下 type obj1 struct { valte1 string } type obj2 struct { valte2 string } ##继承 把struct看做类,struct中可以包含其他的struct,继承内部struct的方法和变量,同时可以重写,代码如下 package main import "fmt" type o...阅读全文

www.allocmem.com 2017-01-10 00:04 www.allocmem.co 等

Java中方法多态以及多接口实现

###关于java中方法多态 通过多子类重写父类或接口实现。 通过同类同方法(方法名相同,参数数量或者类型不同)实现,这里主要注意Java中判断同一方法的标准是方法名和参数,与返回值无关,如下,可简要看着yy(int a) “` package com.anteoy.coreJava.polymorphism; /** Created by zhoudazhuang Date: 17-1-9 Time: 下午9:07 Description :java识别是否为重复冲突函数,依靠的是函数名和参数...阅读全文

www.allocmem.com 2017-01-09 22:24 www.allocmem.co 等

java构造函数以及static关键字

java构造函数以及static关键字 Author anteoy@gmail.com | Posted 2017-01-03 11:41:00 ###关于java构造器 原本无显示编码构造器,则有一个默认的隐式(隐藏的无参构造器),但是,当显示指定了构造器,则这个默认隐式的构造器将不存在,比如此时无法new无参的构造器(除非显示地编写声明无参的构造函数)。如下: “` package com.anteoy.coreJava.constructor; /** Created by zhoudaz...阅读全文

www.allocmem.com 2017-01-03 11:41 www.allocmem.co 等

ubuntu16.04 自动挂载新分区到指定目录下

ubuntu16.04 自动挂载新分区到指定目录下 Author anteoy@gmail.com | Posted 2016-12-28 23:08:00 ###引言:   起因:ubuntu系统使用固态硬盘120G不够使用,如今已无法满足日常需要,于是增加了一枚机械硬盘,分别分了两个空闲分区,依次使系统自启时挂在到/home/和/usr/指定目录下 ###安装环境: 1. ubuntu 16.04 LTS 2. 有剩余未分配空间的硬盘 ###安装过程: 1. 查看硬盘所有分区并记录下待挂在分...阅读全文

www.allocmem.com 2016-12-28 23:08 www.allocmem.co 等