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

网站建设前台与后台最新技术网页设计平面设计培训机构

网站建设前台与后台最新技术,网页设计平面设计培训机构,制作离婚证的小程序,友情链接如何交换目录标题 一、Json序列化与反序列化1. 序列化2. 反序列化 二、Goto语法三、Tcp Socket1. 单客户端发送信息到服务端2. 服务端客户端通信 一、Json序列化与反序列化 1. 序列化 package mainimport (encoding/jsonfmt)type Person struct {Name string… 目录标题 一、Json序列化与反序列化1. 序列化2. 反序列化 二、Goto语法三、Tcp Socket1. 单客户端发送信息到服务端2. 服务端客户端通信 一、Json序列化与反序列化 1. 序列化 package mainimport (encoding/jsonfmt)type Person struct {Name string json:nameAge int json:ageEmail string json:email}func main() {person : Person{Name: LoisMay,Age: 21,Email: 1711031006qq.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:1711031006qq.com}}2. 反序列化 func main() {Data : []byte({name:LoisMay,age:21,email:1711031006qq.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 fmtfunc 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 (bufiofmtnetstrings)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 (bufiofmtnetosstrings)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 (bufiofmtnetosstrings)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 (bufiofmtnetosstrings)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.w-s-a.com/news/473093/

相关文章:

  • 网站空间租用费用网站建设公司怎么宣传
  • 镇江网站建设优化案例分析dw2018网页制作步骤图文
  • 网站开发一个多少钱为什么前端都不用dw
  • 网站降权的原因北京中小企业网站建设公司
  • 个人域名能做网站吗wordpress
  • 手机网站设计只找亿企邦工业设计公司简介
  • 腾讯云主机做网站免费网站怎么做啊
  • 网站建设推广销售话术广州网页定制多少钱
  • 备案号是哪个网站项目管理pmp
  • 做网站需要哪些硬件软件网站视频链接怎么做的
  • 电子商务网站建设试题二wordpress主页显示浏览数
  • 网站快照没了广州企业电话大全
  • 网站项目开发收费标准网站开发app开发主营业务
  • 怎么到国外网站去接模具订单做互联网建设企业网站
  • 深圳品牌网站建设公司排名洪雅网站建设
  • nodejs 做网站wordpress主题绕过激活码
  • 平湖模板网站建设公司网页美工培训
  • 顺德网站建设市场建设工程交易中心网站
  • 深圳企业网站怎么做浪琴手表网站建设图
  • 2018网站外链怎么做济南 网站设计公司
  • 承德百度网站建设郑州网站seo优化公司
  • 四川建站模板网站公司分类信息网站制作
  • 网站开发前后端有wordpress模板安装教程视频教程
  • 有网站想修改里面的内容怎么做怎么做黑彩黑彩网站
  • 什么专业会做网站网站建设续费合同
  • 网站开发的项目开发网站做直播功能需要注册吗
  • 网站开发新手什么软件好网站设计师和ui设计师
  • 太仓苏州网站建设软件开发网站建设
  • 一个虚拟主机做2个网站吗工信部怎么查网站备案
  • 本地网站做淘宝客制作app步骤