摘要: 接口类型总是代表着某一种类型(即所有实现它的类型)的行为。 一个接口类型的声明通常会包含关键字type、类型名称、关键字interface以及由花括号包裹的若干方法声明。 type Animal interface { Grow() Move(string) string } 接口类型中的方法声明是普通的方法声明的简化形式。 它们只包括方法名称、参数声明列表和结果声明... 阅读全文
posted @ 2019-02-19 15:45 osbreak 阅读(305) 评论(0) 推荐(0)
摘要: 结构体类型的字面量由关键字type、类型名称、关键字struct,以及由花括号包裹的若干字段声明组成。 type Person struct { Name string Gender string Age uint8 } Person{Name: "Robert", Gender: "Male", Age: 33} 键值对的顺序与其类型中的... 阅读全文
posted @ 2019-02-19 15:31 osbreak 阅读(335) 评论(0) 推荐(0)
摘要: 可以把函数作为值来传递和使用。Go语言中的函数可以返回多个结果。 func(input1 string ,input2 string) string 函数接受n个参数func add(a int, arg ...int) int { var sum int = a for i := 0; i < len(arg); i++ { sum += arg[i]... 阅读全文
posted @ 2019-02-19 15:28 osbreak 阅读(196) 评论(0) 推荐(0)
摘要: 通道类型的表示方法很简单,仅由两部分组成 chan T 在这个类型字面量中,左边是代表通道类型的关键字chan,而右边则是一个可变的部分。 即代表该通道类型允许传递的数据的类型(或称通道的元素类型)。 这两部分之间需要以空格分隔。 与其它的数据类型不同,我们无法表示一个通道类型的值。 因此,我们也无 阅读全文
posted @ 2019-02-18 23:25 osbreak 阅读(317) 评论(0) 推荐(0)
摘要: 对于数组来说,索引值既不能小于0也不能大于或等于数组值的长度。 索引值的最小有效值从0开始。 len是Go语言的内建函数的名称。 该函数用于获取字符串、数组、切片、字典或通道类型的值的长度。 var length = len(numbers) 如果我们只声明一个数组类型的变量而不为它赋值,那么该变量 阅读全文
posted @ 2019-02-18 22:55 osbreak 阅读(511) 评论(0) 推荐(0)
摘要: var 声明变量 const 常量的关键字, 常量不能出现只声明不赋值的情况。 名字首字母为大写的程序实体可以被任何代码包中的代码访问到。 名字首字母为小写的程序实体则只能被同一个代码包中的代码所访问。 Go语言的整数类型一共有10个, int, uint byte与rune类型有一个共性,即:它们 阅读全文
posted @ 2019-02-13 22:48 osbreak 阅读(226) 评论(0) 推荐(0)
摘要: main.go go build main.go 阅读全文
posted @ 2019-02-13 21:24 osbreak 阅读(266) 评论(0) 推荐(0)
摘要: //加密机制初始化 g_HDMgr.init(); //对方的public key BIGNUM* peerPubKey = NULL; peerPubKey = BN_bin2bn((unsigned char*)pRegist->DH_PubKey, pRegist->nDH_PubKey_Le 阅读全文
posted @ 2019-02-11 16:00 osbreak 阅读(2197) 评论(0) 推荐(0)
摘要: libevent tcp API整理 1.01 分配并且返回一个新的具有默认设置的 event_base struct event_base *base = event_base_new(); // 运行循环 int event_base_dispatch(struct event_base *ba 阅读全文
posted @ 2019-01-20 14:37 osbreak 阅读(134) 评论(0) 推荐(0)
摘要: #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAX_LINE 16384 struct fd_state { ... 阅读全文
posted @ 2019-01-17 00:07 osbreak 阅读(188) 评论(0) 推荐(0)
摘要: LibEvent 实现的低级 ROT13 例子 #include #include #include #include #include #include #include #include #include #include #include #define MAX_LINE 16384 struct fd_st... 阅读全文
posted @ 2019-01-16 23:24 osbreak 阅读(299) 评论(0) 推荐(0)
摘要: #define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg)) #include #include #include #include #include #include #include #include void do_timeout(evutil_socket_t fd, s... 阅读全文
posted @ 2019-01-16 23:19 osbreak 阅读(351) 评论(0) 推荐(0)
摘要: #include #include #include #include #include #include #include #include int lasttime; static void timeout_cb(int fd, short event, void *arg) { struct timeval tv; struct event... 阅读全文
posted @ 2019-01-16 22:38 osbreak 阅读(550) 评论(0) 推荐(0)
摘要: /***************************************************************** 函数功能: 创建事件集 *****************************************************************/ struct event_base *event_base_new(void) /******... 阅读全文
posted @ 2019-01-14 23:47 osbreak 阅读(207) 评论(0) 推荐(0)
摘要: LibEvent 能记录内部的错误和警告日志,如果编译进日志支持功能,也会记录调试信息.默认情况下这些消息都是输出 到 stderr,你也可以通过提供自己的日志函数的方法来覆盖这种行为. 为了覆盖 LibEvent 的日志行为,你需要自己编写满足 event_log_cb 格式的函数,然后将函数作为参数传入 event_set_log_callback().无论什么时候只要 LibE... 阅读全文
posted @ 2019-01-14 23:34 osbreak 阅读(1186) 评论(0) 推荐(0)