1. 前言看到这个服务端框架,是真的轻量,代码极简但包含了服务端的核心,能很容易帮助新手理解服务端框架做了什么。当然最主要还是作者写的渐进式开发文档,实在是极好。这篇文章不会详细的说这个项目的源码,这个直接看作者的文档和源码就行,这篇文章主要是借助这个框架总结一个tcp服务端的核心功能。2. 一个TCP服务的核心功能2.1 处理连接一个TCP服务端要给客户端提供功能,首先得与客户端建立连接。学过网
转载
2023-10-31 12:37:37
96阅读
使用Golang 搭建http web服务器需求1 登陆页面2 首页路由处理器页面404处理器登陆页面处理器ajax处理器如何设置header:如何解析参数:如何连接数据库如何设置cookie主页处理器后记 Golang在搭建web服务器方面的能力是毋庸置疑的。官方已经有提供net/http包为搭建http服务器做准备。使用这个包能很简单地对web的路由,静态文件,模版,cookie等数据进行设
转载
2024-03-18 06:58:41
41阅读
golang 视频服务器package mainimport ( "fmt" "io/ioutil" "log" "net/ht
原创
2022-12-21 10:26:22
162阅读
如何用golang搭建一个web服务呢?菜鸟官网的go web编程教程已经介绍了web服务器的工作原理,这里就不赘述了。我们先看个例子:http.gopackage main
import (
"fmt"
"io"
"log"
"net/http"
)
func main() {
http.HandleFunc("/test", doRequest)
转载
2024-03-02 09:26:26
49阅读
,笔者从零开始接触Go语言,挑战了一下自我,实现了一个web service. 不过这里有一个问题,在上次的实现中,用了一些第三方的库,比如beego框架和go-simplejson. 从工程的角度来说,利用框架等第三方库的优点是,很多地方的编码变得简单,代码量较少;但是缺点是:一、对golang本身built-in的库如net/http和encoding/json都还了解得很不够;二、一旦第三方
转载
2023-07-25 16:20:41
83阅读
golang中使用的http协议版本是RFC2616对于一个http服务来讲,需要兼容新旧版本的http协议,http1.0/2.0,以及https的支持,http的通信是建立在tcp连接基础上的通信。现在协议有了,连接通信也有了,还剩一个问题就是如何处理client request请求,这个问题可以分为路由和具体逻辑实现,下面看看在golang中是如何解决这些问题的。 路由部分&nbs
转载
2024-03-13 16:16:47
25阅读
package mainimport ( "encoding/json" "fmt" "net/http"
原创
2022-06-20 19:47:28
47阅读
本文旨在讲述 RPC 框架设计中的几个核心问题及其解决方法,并基于 Golang 反射技术,构建了一个简易的 RPC 框架。RPCRPC(Remote Procedure Call),即远程过程调用,可以理解成,服务 A 想调用不在同一内存空间的服务 B 的函数,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。服务端RPC 服务端需要解决 2 个问题:由于客户端传
package mainimport ( "fmt" "io/ioutil" "log" "net/http" "os" "path/filepath" "time")func DownloadPdf(tsid int) ([
原创
2022-12-21 10:33:27
206阅读
作者近期在写一个项目时遇到了这样的需求:调用一个库API函数,函数内部又会拉起若干个后台goroutine。这时后台goroutine如果遇到错误想要及时通知库的使用者将不会是一件容易的事情,因为这是一个异步通知error的方法。作者最终的解决方案概括为:使用者另启一个goroutine监听Err channel,库后台goroutine出现的错误将直接发送至Err channel中。作者以自己项
介绍Nano 是什么?轻量级,方便,高性能 golang 的游戏服务器框架。nano 是一个轻量级的服务器框架,它最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端。当然还不仅仅是游戏,用 nano 开发高实时 web 应用也非常合适。最重要的是可以通过这个入门 Golang 游戏服务器框架开发示例仓库[cloud-nati
转载
2023-08-29 21:04:47
3360阅读
## 从零开始,将Golang应用部署到服务器
### 简介
在本文中,我们将教你如何将一个简单的Golang应用部署到服务器上。在本教程中,我们将使用Kubernetes(K8S)进行部署。Kubernetes是一种开源的容器编排引擎,用于自动化容器的部署、扩展和操作。在本文中,我们将展示如何使用Kubernetes将Golang应用部署到服务器上。
### 步骤概述
下面是部署Golang
原创
2024-05-07 11:34:21
102阅读
多线程+同步阻塞模型在我们的游戏项目中使用的golang服务器开发方式如下1.多线程逻辑2.同步阻塞. 也就是说, 每个人一个线程(goroutine), io线程=逻辑线程这种方式的优点:1. 同步阻塞方式与人的思维方式类同2. 逻辑处理性能有一定提升在大规模使用这种模式编写逻辑后, 我们发现了这种模式只有1个缺点: 编写者需要处理多线程关系但这本身确实直接致命的, 回想C++时代, 多线程处理
简介http WEB服务器: 1. 注册回调函数:http.HandleFunc("/", myHandler) func myHandler(w http.ResponseWriter, r *http.Request) w:给客户端回发数据 r:从客户端读到的数据 type ResponseWriter interface { Header() Header Write([]byte) (int, error) Writ
原创
2021-06-01 12:26:17
385阅读
package mainimport ( "net" "fmt" "time")func main() { // 组织一个 udp 地址结构, 指定服务器的IP+port srvAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8006") if err != nil { fmt.Println("ResolveUDPAddr err:", err) return.
原创
2021-06-01 12:26:18
397阅读
首先强烈推荐按照 golang 官方教程来配置,介绍的非常详细和到位。下面是我参考网友的教程和官方教程做的一个教程。 1、创建远程连接 & 设置同步策略 1.1、创建 ssh 连接配置 依次点击功能栏「Golang -> Preferences」,随后选择 「Tools -> SSH Configu
原创
2022-06-10 21:53:01
2155阅读
首先强烈推荐按照 golang 官方教程来配置,介绍的非常详细和到位。下面是我参考网友的教程和官方教程做的一个教程。 1、创建远程连接 & 设置同步策略 1.1、创建 ssh 连接配置 依次点击功能栏「Golang -> Preferences」,随后选择 「Tools -> SSH Configu
原创
2022-06-10 22:01:27
328阅读
垃圾回收概念对不再使用的内存资源进行自动回收的行为。出现的原因内存管理是程序员开发应用的难题,传统的编程语言(c/c++),程序员须小心进行管理操作,控制内存的申请及释放。稍有不慎会造成内存泄漏。以往常用办法1.内存泄漏检测工具。原理是静态代码扫描,通过扫描程序检测可能出现内存泄漏的代码段,然而检测工具难免有疏漏和不足,只能嗯起到辅助作用。2.职能指针。c++中引入的自动内存管理方法。通过拥有自动
origin 游戏服务器引擎简介origin 是一个由 Go 语言(golang)编写的分布式开源游戏服务器引擎。origin适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。origin 解决的问题:origin总体设计如go语言设计一样,总是尽可能的提供简洁和易用的模式,快速开发。能够根据业务需求快速并灵活的制定服务器架构。利用多核优势,将不同的service配置到不同的node
转载
2024-08-14 12:33:37
306阅读
最近因为要用最一个简易网盘,主要功能是对接企业已有的ftp服务器和smb服务器。这篇博客主要是讲golang对接ftp服务器go get github.com/dutchcoders/goftp 使用的是一个荷兰开发者作为主导的包,当时主要是因为有一个博主在CSDN上分享过这个包的使用方法,所以当时就去看了下这个包的源码。1.连接goftp.Connect(connConfig)
// conn