image.png

TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。

我们先看看项目结构

├── demo

│ └── zinxv0.1

│ └── Server.go

├── go.mod

├── ziface

│ └── IServer.go

└── znet

└── server.go

我们先在定义一个Iserver.go的服务接口,我们需要启动服务器,所以在这个接口里面需要实现3个方法。

package ziface

//定义一个服务器接口

type IServer interface {

//启动服务器

Start()

//停止服务器

Stop()

//运行服务器

Serve()

}

然后我们需要实现一个结构体来实现这个接口的定义的方法

package znet

import (

"fmt"

"net"

"zinx/ziface"

)

// IServer的接口实现,定义一个Server的服务器模块