加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[Go] 轻量服务器框架基础TCP服务模块

发布时间:2021-05-21 06:47:16 所属栏目:大数据 来源: https://www.jb51.cc
导读:框架要先把整体的结构定义好,一般都是在$GOPATH目录的src下建立自己的目录 ? ?zinterface是一些接口的定义 znet就是接口的具体实现 IServer.go package zinterfacetype IServer interface{ Start() Stop() Server()} server.go一个tcp服务端的基本业务,简

框架要先把整体的结构定义好,一般都是在$GOPATH目录的src下建立自己的目录

?

?zinterface是一些接口的定义

znet就是接口的具体实现

IServer.go

package zinterface

type IServer interface{
    Start()
    Stop()
    Server()
}

server.go一个tcp服务端的基本业务,简单的原样回显

package znet

import (
    "fmt"
    lognetzinx/zinterface"
)

type Server struct {
    Name      string
    IP        
    IPversion 
    Port      int
}

func (s *Server) Start() {
    log.Printf(%s %s:%d start...n,s.Name,s.IP,s.Port)
    addr,err := net.ResolveTCPAddr(s.IPversion,fmt.Sprintf(%s:%dif err != nil {
        log.Println(resolve tcp addr err  net.ListenTCP(s.IPversion,addr)
    listen tcp err for {
            conn,1)"> listener.AcceptTCP()
             nil {
                log.Println(accept tcp err  {
                    b := make([]byte,512)
                    len,1)"> conn.Read(b)
                     nil {
                        log.Println(read tcp err if _,err := conn.Write(b[:len]); err !=write tcp err Server) Stop() {

}
func (s *Server) Server() {
    s.Start()
    select{}
}
func NewServer(name ) zinterface.IServer {
    s := &Server{
        Name:      name,IP:        0.0.0.0tcp48999

?

?server.go

package main

import (
    zinx/znet
)
func main()  {
    server:=znet.NewServer([zinx])
    server.Server()
}

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读