Go语言调用C语言函数的坑

最近在看人民邮电出版社 许式伟 吕桂华编著的《Go语言编程》,看到【1.2.9 语言交互性】小节的cprint.go。未按照书中源代码格式编写,而是把 import "C" 和 import "unsafe" 合并放入小括号中并和注释结束符 */ 间隔了一行,这也是大多数Go语言学习和开发者经常使用的代码风格,我修改后的代码如下: package main/*#include <stdio.h>#include <stdlib.h>*/import ( "C" "unsafe")func mai...阅读全文

2014-12-09 15:42 董松
阅读:9048 评论:0

Go的50度灰:开发者要注意的陷阱和常见错误

Go是一门简单有趣的语言,但与其他语言类似,它会有一些技巧。。。这些技巧的绝大部分并不是Go的缺陷造成的。如果你以前使用的是其他语言,那么这其中的有些错误就是很自然的陷阱。其它的是由错误的假设和缺少细节造成的。 如果你花时间学习这门语言,阅读官方说明、wiki、邮件列表讨论、大量的优秀博文和Rob Pike的展示,以及源代码,这些技巧中的绝大多数都是显而易见的。尽管不是每个人都是以这种方式开始学习的,但也没关系。如果你是Go语言新人,那么这里的信息将会节约你大量的调试代码的时间。 初级 开大括号...阅读全文

2016-08-22 11:56 borey
阅读:39702 评论:2

Go Web编程:Web基础

在用go开发web程序前,必须了解HTTP协议,对于没有接触过的人来说,强烈建议看下这两本书:《HTTP权威指南》和《图解HTTP》。 HTTP概述 我们平时上网,打开浏览器,输入网址后按下回车键,相应的Web页面就显示出来了。那这个过程到底是如何实现的呢? 先来看下面一张图: 上图很清楚的描述了一个用户访问一个web站点的过程。分为三步: 1. 通过客户端也就是浏览器输入URL网址,客户端通过DNS协议与DNS服务网络交互,获取域名对应的IP地址。 2. 浏览器再通过IP地址找到对应的IP服务...阅读全文

阅读:3610 评论:0

golang中tcp socket粘包问题和处理

在用golang开发人工客服系统的时候碰到了粘包问题,那么什么是粘包呢?例如我们和客户端约定数据交互格式是一个json格式的字符串: {"Id":1,"Name":"golang","Message":"message"} 当客户端发送数据给服务端的时候,如果服务端没有及时接收,客户端又发送了一条数据上来,这时候服务端才进行接收的话就会收到两个连续的字符串,形如: {"Id":1,"Name":"golang","Message":"message"}{"Id":1,"Name":"golang...阅读全文

阅读:1444 评论:0