当前位置:首页 » 《休闲阅读》 » 正文

【Golang】Go语言网络编程 tcp实现通信_cc20172019的博客

11 人参与  2022年01月27日 17:06  分类 : 《休闲阅读》  评论

点击全文阅读


这里写目录标题

  • TCP客户端(client)
  • TCP服务端(server)

TCP客户端(client)

package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"strings"
)
/*
一个TCP客户端进行TCP通信的流程如下:

1.建立与服务端的链接
2.进行数据收发
3.关闭链接
 */

//1.与服务器建立连接
//2.进行连接数据收发
  //2.1从终端读取信息
  //2.2发送到服务器
  //2.3接收服务器信息
func main() {
	//1.与服务器建立连接
	conn, err := net.Dial("tcp", "127.0.0.1:20001")
	if err != nil {
		fmt.Printf("dial failed,err:%v", err)
		return
	}
	//2.根据链接进行数据收发

	//2.1创建一个从终端读取的对象
	input := bufio.NewReader(os.Stdin)
	//for就是一直发送接收
	for  {
		//2.2利用从终端读取信息的对象读到换行
		ss, _ := input.ReadString('\n')
		//2.3把读取的信息空格去掉
		strings.TrimSpace(ss)
		//2.4如果ss内容是大写就退出
		if strings.ToUpper(ss) == "Q" {
			return
		}
		//2.5如果ss内容不是q,就将终端的内容写入链接
		n, err := conn.Write([]byte(ss))
		if err != nil {
			fmt.Printf("send failed,err:%v\n", err)
		}
		//fmt.Println(n)
		//2.6从服务端读消息
		//2.6.1这只一次读多少内容
		var buf [1024]byte

		//2.6.2开始读取信息
		n, err = conn.Read(buf[:])
		if err != nil {
			fmt.Printf("read failed,err:%v",err)
		}
		//fmt.Printf("读取了%d字节\n", n)
          fmt.Printf("收到服务端回复:%v",string(buf[:n]))
		//3.关闭链接

	}
}

TCP服务端(server)

package main

import (
	"bufio"
	"fmt"
	"net"
)

/*
TCP服务端程序的处理流程:

监听端口
接收客户端请求建立链接
创建goroutine处理链接。
*/
//创造处理链接的函数
func process(conn net.Conn) {
	//2.最后要关闭这个链接
	defer conn.Close()
	//1.根据链接进行数据的接收和发送操作
	//1.1根据这个tcp链接conn,创建一个从链接conn读的对象
	reader := bufio.NewReader(conn)
	//1.
	var buf [128]byte
	n, err := reader.Read(buf[:])
	if err != nil {
		fmt.Printf("read from conn  failed,err:%d", err)
	}
	ret := buf[:n]
	fmt.Printf("从链接读取的数据是:%v", string(ret))

	conn.Write([]byte("亲亲,收到了"))

}
func main() {
	//1.启动监听  先放上耳朵
	listener, err := net.Listen("tcp", "127.0.0.1:20001")
	if err != nil {
		fmt.Printf("listen failed,err:%v", err)
		return
	}
	//2.等待客户建立连接  //for不断的建立链接处理链接
	for {
		conn, err := listener.Accept() //如果err为空,代表拿到了链接
		if err != nil {
			fmt.Printf("conn accept failed,err:%v", err)
			continue
		}
		//3.启动gouroutine去处理链接
		go process(conn)

	}

}

代码在编辑器的位置:
在这里插入图片描述

注意:
1.先启动服务端
2.在启动客户端


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/34005.html

链接  服务端  读取  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • (番外)+(全书)霍沉洲沈青禾此去经年人未还(霍沉洲沈青禾)_(霍沉洲沈青禾此去经年人未还)列表_笔趣阁(霍沉洲沈青禾)
  • (番外)+(全书)霍沉洲沈青禾(此去经年人未还霍沉洲沈青禾)完结_(霍沉洲沈青禾)列表_笔趣阁(此去经年人未还霍沉洲沈青禾)
  • 「重回八零,拒绝替嫁冲喜」章节彩蛋限时释出‌_卫东玉兰苏夏人气小说未删减节选
  • 重生七零祁同伟不再是农民儿子结局+番外纯净版全书免费重生七零祁同伟不再是农民儿子结局+番外纯净版全书免费
  • 傅雅宁的神女老婆,却在背地承欢作乐顾尘傅雅宁全书在线
  • 全文神女老婆,却在背地承欢作乐全局(顾尘傅雅宁)列表_全文神女老婆,却在背地承欢作乐全局
  • (番外)+(全书)此去经年人未还全书+番外+后续免费下载_(沈青禾霍沉洲)此去经年人未还全书+番外+后续列表_笔趣阁(沈青禾霍沉洲)
  • 完结文毁容的姐姐和瞎眼的我离开后,姜家两兄弟悔哭了+后续列表_完结文毁容的姐姐和瞎眼的我离开后,姜家两兄弟悔哭了+后续(林梦婉)
  • 妻子辱我爸受贿自杀,我掏出一等军功章节选推荐_[陈素云辰朋友]小说精彩章节分享
  • 全书浏览苔藓爬满旧日诺言新上(顾砚廷慕晚夏)_苔藓爬满旧日诺言新上(顾砚廷慕晚夏)全书结局
  • 顾尘傅雅宁(神女老婆,却在背地承欢作乐+后续+结局)结局_(顾尘傅雅宁神女老婆,却在背地承欢作乐+后续+结局全书结局)结局列表_笔趣阁(顾尘傅雅宁)
  • 「老婆怀上助理的孩子后,助理要求我净身出户」章节限时抢先看‌_「黄秋雅秋雅姐刘嘉铭」后续完结版

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1