上一篇讲解了client端相关的知识,这一篇讲解服务端。golang语言可以快速实现一个简单的server端,如下所示:

package 

上述代码就轻松实现一个监听本地8000端口的服务端。大家可能注意到,代码调用两个路由的处理函数:Handle和HandleFunc,大家可以任选一个使用。大多数情况下我们选择HandleFunc,因为其第二个参数是我们想要的处理函数;而Handle的第二个参数是一个handler对象,该对象必须实现ServeHTTP方法,我们在ServeHTTP方法中完成我们的处理逻辑,显然直接使用HandleFunc要方便一些。实际上从源码中可以看到HandleFunc最终也是调用了Handle函数完成操作。在接下来的代码中将只用HandleFunc进行演示。

假设做一个登录功能,结合上一篇文章的知识点,很容易写出client端的代码如下:

package 

那么服务端经过改造后得到如下代码:

package 

这就可以实现client端访问server端,当然也可以从浏览器直接访问。然而这种方式存在一些问题,在如下所示的HandleFunc函数的源码中发现其调用的实际上是默认的DefaultServeMux对象。

func 

那么如果我们只要自定义ServeMux对象,然后再调用HandleFunc函数就可以实现更加灵活的路由功能,接下来我们对mian函数进行改造。

func 

另外可以自定义server对象,设置读超时、写超时等多种参数。如下所示,我们声明一个server变量,设置超时时间为2秒。

func 

同时将login函数修改一下,产生3秒的睡眠,超过设置的2秒超时,服务器端则不会返回任何数据,所以此时client端也无法获取数据。

func 

下面演示一下client如何用POST方法向服务器提交数据,需要将GET方法修改成POST方法。

var 

而对应的server端需要在login函数中加上接受数据的逻辑即可:

func 

golang byte转string_golang系列——实战http服务器相关推荐

  1. golang byte转string_Golang和Rust语言常见功能/库

    时下最流行.最具发展前途的的两门语言是Golang和Rust.Golang语言简洁.高效.并发.并且有个强大的囊括了常见功能标准库.与之相对比,Rust语言则主要是安全.高性能.虽然Rust没有gol ...

  2. golang byte转string_golang版memcached之groupcache缓存入门

    概述 groupcache is a distributed caching and cache-filling library, intended as a replacementfor a poo ...

  3. golang byte转string_golang面试题:怎么避免内存逃逸?

    问题 怎么避免内存逃逸? 怎么答 在runtime/stubs.go:133有个函数叫noescape.noescape可以在逃逸分析中隐藏一个指针.让这个指针在逃逸分析中不会被检测为逃逸. // n ...

  4. DDD系列 实战一 应用设计案例 (golang)

    DDD系列 实战一 应用设计案例 (golang) 基于 ddd 的设计思想, 核心领域需要由纯内存对象+基础设施的抽象的接口组成 独立于外部框架: 比如 web 框架可以是 gin, 也可以是 be ...

  5. 【Golang 快速入门】项目实战:即时通信系统

    Golang 快速入门 即时通信系统 - 服务端 版本一:构建基础 Server 版本二:用户上线功能 版本三:用户消息广播机制 版本四:用户业务层封装 版本五:在线用户查询 版本六:修改用户名 版本 ...

  6. GoLang之interface底层系列二(类型断言)

    文章目录 GoLang之interface底层系列二(类型断言) 1.抽象类型.具体类型 2.断言的作用类型与目标类型 3.空接口.(具体类型) 4.非空接口.(具体类型) 5.空接口.(非空接口) ...

  7. [技术分享 – FCS 篇] 驭龙五式:实战 FCS 服务器和客户端部署 —— 开篇

    <全文链接:微软 TechNet 技术资源库 驭龙五式:实战 FCS 服务器和客户端部署 -- 开篇> Microsoft Forefront Client Security (简称 FC ...

  8. Iptables防火墙详细介绍与实战增强服务器安全

    Iptables防火墙详细介绍与实战增强服务器安全 一:Iptables的概述及应用 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfi ...

  9. 可申请试用!GN4系列GPU云服务器重磅来袭

    超高性价比的算力资源来了! 百度智能云全新推出基于 A10 打造的 GN4 系列 GPU 云服务器 以及 vGPU 云服务器产品 弹性灵活.更具性能优势 从"图像渲染"到" ...

最新文章

  1. springmvc 返回xml数据
  2. 详解XStream别名
  3. seci-log1.02日志分析软件版本升级了
  4. 双端堆c语言,数据结构——双端堆(C语言)
  5. linux挂载查看、添加与取消
  6. GO语言学习之路14
  7. mysql字符类型_MySQL学习分享--字符类型
  8. US1MF-ASEMI贴片薄体封装二极管US1M
  9. 【高性能Mysql 】读书笔记(一)
  10. 安装Win8跳过密钥方法
  11. 使用腾讯云托管部署前端项目
  12. java游戏英雄时代攻略_军团战棋英雄时代战役攻略 战役全关卡通关攻略
  13. Linux下刻录cd,用debian命令刻录CD
  14. 为技术发声,因分享发光——最受开发者欢迎的“开发者布道师”评选结果来啦!...
  15. 最新二开修复嗨Go理财分红商城完整源码+区块商城综合系统源码
  16. cocos《破碎骑士》开发日志
  17. C/C++ 操作ini文件(SinpleIni 跨平台库)
  18. scrapy 下载壁纸(图片)详细教程
  19. 弘辽科技:新手卖家如何制作高点击率主图
  20. 软件测试黑马程序员课后答案_软件测试课后参考答案

热门文章

  1. mac本地搭建kafka
  2. C# WinForm给Button按钮或其它控件添加快捷键响应
  3. BCH表现良好,BTC调整蓄势
  4. 函数计算新功能-----支持C#函数
  5. 【译】需要学习的是编程,而不是编程语言
  6. 浅析Facebook文字理解引擎DeepText
  7. java 子类重写父类的方法的注意事项
  8. Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控
  9. python非官方的二进制扩展包下载地址
  10. 关于更改MYECLIPSE JS 代码背景颜色