当前位置: 首页 > news >正文

网站备案 写共享可以吗网络游戏推广平台

网站备案 写共享可以吗,网络游戏推广平台,比较好的 网站统计系统 php源码,三门峡建设银行网站目录标题 一、Json序列化与反序列化1. 序列化2. 反序列化 二、Goto语法三、Tcp Socket1. 单客户端发送信息到服务端2. 服务端客户端通信 一、Json序列化与反序列化 1. 序列化 package mainimport ("encoding/json""fmt")type Person struct {Name string…

目录标题

  • 一、Json序列化与反序列化
    • 1. 序列化
    • 2. 反序列化
  • 二、Goto语法
  • 三、Tcp Socket
    • 1. 单客户端发送信息到服务端
    • 2. 服务端客户端通信

一、Json序列化与反序列化

1. 序列化

		package mainimport ("encoding/json""fmt")type Person struct {Name  string `json:"name"`Age   int    `json:"age"`Email string `json:"email"`}func main() {person := Person{Name:  "LoisMay",Age:   21,Email: "1711031006@qq.com",}// 序列化为 JSON 字节数组jsonData, err := json.Marshal(person)if err != nil {fmt.Println("JSON 序列化错误:", err)return}// 打印 JSON 字符串fmt.Println(string(jsonData))// {"name":"LoisMay","age":21,"email":"1711031006@qq.com"}}

2. 反序列化

		func main() {Data := []byte(`{"name":"LoisMay","age":21,"email":"1711031006@qq.com"}`)// 反序列化为 Person 结构体var person Personerr := json.Unmarshal(Data, &person)if err != nil {fmt.Println("JSON 反序列化错误:", err)return}// 打印反序列化后的对象fmt.Println(person.Name)fmt.Println(person.Age)fmt.Println(person.Email)}

二、Goto语法

        goto 语句可以用来实现程序的无条件跳转但在实际开发中,应该谨慎使用它,因为滥用 goto 可能会导致代码结构混乱和可读性降低。package mainimport "fmt"func main() {var n = 30fmt.Println("LoisMay")if n > 20 {goto func1}fmt.Println("LoisMays")fmt.Println("LoisMayss")fmt.Println("LoisMaysss")func1:fmt.Println("666")fmt.Println("777")fmt.Println("888")}//	LoisMay//	666//	777//	888

三、Tcp Socket

1. 单客户端发送信息到服务端

Server.go

		package mainimport ("bufio""fmt""net""strings")func process(conn net.Conn) {defer conn.Close()reader := bufio.NewReader(conn)for {fmt.Printf("Server is waiting for client message from %s:\n", conn.RemoteAddr().String())massage, err := reader.ReadString('\n')if err != nil {fmt.Printf("Client exited with error: %v\n", err)return}massage = strings.Trim(massage, "\r\n")fmt.Printf("Received message from client: %s\n", massage)// 服务端回复消息response := "Server received: " + massage + "\n"_, err = conn.Write([]byte(response))if err != nil {fmt.Printf("Error sending response to client: %v\n", err)return}}}func main() {fmt.Println("Server is Listen")listen, err := net.Listen("tcp", "0.0.0.0:8888")if err != nil {fmt.Println("Listen err=", err)return}defer listen.Close()for {fmt.Println("Waiting for client connection")conn, err := listen.Accept()if err != nil {fmt.Println("Accept err=", err)} else {fmt.Printf("Accepted connection from client: %v\n", conn.RemoteAddr().String())}go process(conn)}}

Client.go

		package mainimport ("bufio""fmt""net""os""strings")func main() {conn, err := net.Dial("tcp", "0.0.0.0:8888")if err != nil {fmt.Println("Client dial error:", err)return}defer conn.Close()reader := bufio.NewReader(os.Stdin)for {fmt.Print("Enter message: ")message, err := reader.ReadString('\n')if err != nil {fmt.Println("ReadString error:", err)break}message = strings.Trim(message, "\r\n")if message == "exit" {fmt.Println("Client is exiting")break}_, err = conn.Write([]byte(message + "\n"))if err != nil {fmt.Println("Connection write error:", err)break}response, err := bufio.NewReader(conn).ReadString('\n')if err != nil {fmt.Println("Read response error:", err)break}fmt.Println("Server response:", response)}}

2. 服务端客户端通信

server.go

		package mainimport ("bufio""fmt""net""os""strings")func handleClient(conn net.Conn) {defer conn.Close()reader := bufio.NewReader(conn)writer := bufio.NewWriter(conn)for {// 读取客户端消息message, err := reader.ReadString('\n')if err != nil {fmt.Printf("Error reading client message: %v\n", err)return}message = strings.Trim(message, "\r\n")fmt.Printf("Received message from client: %s\n", message)// 回复客户端消息response := "Server received: " + message + "\n"_, err = writer.WriteString(response)if err != nil {fmt.Printf("Error sending response to client: %v\n", err)return}writer.Flush()// 检查客户端是否要退出if message == "exit" {fmt.Println("Client is exiting")return}}}func main() {fmt.Println("Server is listening")listener, err := net.Listen("tcp", "0.0.0.0:8888")if err != nil {fmt.Println("Listen error:", err)return}defer listener.Close()for {fmt.Println("Waiting for client connection")conn, err := listener.Accept()if err != nil {fmt.Println("Accept error:", err)break}fmt.Println("Client connected:", conn.RemoteAddr().String())go handleClient(conn)// 启动一个 goroutine 处理服务端发送消息go func(c net.Conn) {reader := bufio.NewReader(os.Stdin)writer := bufio.NewWriter(c)for {// 从控制台读取输入fmt.Print("Enter message: ")input, _ := reader.ReadString('\n')input = strings.Trim(input, "\r\n")// 发送消息给客户端_, err := writer.WriteString(input + "\n")if err != nil {fmt.Printf("Error sending message to client: %v\n", err)return}writer.Flush()// 检查服务端是否要退出if input == "exit" {fmt.Println("Server is exiting")return}}}(conn)}// 阻塞主线程,使服务端持续运行<-make(chan struct{})}

Client.go

		package mainimport ("bufio""fmt""net""os""strings")func handleServer(conn net.Conn) {defer conn.Close()reader := bufio.NewReader(conn)writer := bufio.NewWriter(conn)for {// 读取服务端消息message, err := reader.ReadString('\n')if err != nil {fmt.Printf("Error reading server message: %v\n", err)return}message = strings.Trim(message, "\r\n")fmt.Printf("Received message from server: %s\n", message)// 检查服务端是否要退出if message == "exit" {fmt.Println("Server is exiting")return}// 从控制台读取输入fmt.Print("Enter message: ")input, _ := reader.ReadString('\n')input = strings.Trim(input, "\r\n")// 发送消息给服务端_, err = writer.WriteString(input + "\n")if err != nil {fmt.Printf("Error sending message to server: %v\n", err)return}writer.Flush()// 检查客户端是否要退出if input == "exit" {fmt.Println("Client is exiting")return}}}func main() {conn, err := net.Dial("tcp", "127.0.0.1:8888")if err != nil {fmt.Println("Client dial error:", err)return}fmt.Println("Connected to server")go handleServer(conn)// 从控制台读取输入reader := bufio.NewReader(os.Stdin)for {fmt.Print("Enter message: ")input, _ := reader.ReadString('\n')input = strings.Trim(input, "\r\n")// 发送消息给服务端_, err = conn.Write([]byte(input + "\n"))if err != nil {fmt.Printf("Error sending message to server: %v\n", err)return}// 检查客户端是否要退出if input == "exit" {fmt.Println("Client is exiting")break}}conn.Close()}

在这里插入图片描述

http://www.hkea.cn/news/606642/

相关文章:

  • 个人网站怎么做互联网营销师培训课程免费
  • 微信网站建设价格网站开发报价方案
  • wordpress utc时间慢8小时大连seo关键词排名
  • 中国建设承包商网站创建软件平台该怎么做
  • 中小企业网站建设费用海外推广服务
  • 企业名称的英文做网站名seo是怎么优化推广的
  • 手机在线建站西安seo服务公司
  • 网站开发有前途吗我也要投放广告
  • 备案 网站名称怎么写crm软件
  • 扁平式网站模板b2b网站推广优化
  • 做外贸网站网络营销咨询服务
  • 江门网站建设方案报价淘宝seo优化怎么做
  • 盘龙城做网站推广网站推广
  • 如何做电子书网站域名站长工具
  • 物联网平台有哪些排名优化外包公司
  • 秦皇岛汽车网站制作数字营销工具
  • 培训教育的网站怎么做东莞做网站的联系电话
  • 云南做网站的公司外贸谷歌优化
  • 网页设计学徒培训可试学巢湖seo推广
  • 让顾客心动的句子seo模拟点击软件源码
  • 设计类专业包括哪些kj6699的seo综合查询
  • 手机网站制作哪家好查关键词
  • 米拓企业网站管理系统电商培训机构排名前十
  • 做效果图有哪些网站seo点击排名
  • 网络营销推广网站收录seo推广排名平台有哪些
  • 产品经理如何看待网站开发广州软件系统开发seo推广
  • wordpress 忘记管理员如何做网站seo
  • app和网站哪个有优势淘宝关键词排名
  • wordpress该域名宁波网站seo公司
  • 建购物网站怎么建呀简单的网站建设