(资料图)
把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。
设备之间在网络中进行数据的传输,发送/接收数据。
【2】通信两个重要的要素:IP+PORT【3】设备之间进行传输的时候,必须遵照一定的规则 ---》通信协议:【4】TCP协议:可靠的建立连接: 三次握手
释放连接:四次挥手
【5】UDP协议:不可靠的基于TCP协议的网络通信-创建客户端【1】调用Dial函数:(net包下)【2】代码:package mainimport ("fmt"//所需的网络编程全部都在net包下"net")func main() {fmt.Println("客户端启动...")//调用Dial函数:参数需要指定tcp协议,需要指定服务器端的IP+PORTconn,err := net.Dial("tcp","101.201.48.167:80")if err != nil {fmt.Println("客户端连接失败:err:",err)return}fmt.Println("连接成功,conn:",conn)}
基于TCP协议的网络通信-创建服务器端【1】进行监听:(Listen函数在net包下)【2】代码:
package mainimport ("fmt""net")func main() {fmt.Println("服务端启动了...")listen,err := net.Listen("tcp","127.0.0.1:8888")if err != nil {fmt.Println("监听失败,err:",err)return }for{conn,err2 := listen.Accept()if err2 != nil {fmt.Println("客户端的等待失败,err2:",err2)}else {fmt.Printf("等待连接成功,con=%v,接收到的客户端信息:%v \n",conn,conn.RemoteAddr().String())}}}
基于TCP协议的网络通信-处理终端数据【1】客户端发送数据:
package mainimport ("fmt"//所需的网络编程全部都在net包下"net""bufio""os")func main() {fmt.Println("客户端启动...")//调用Dial函数:参数需要指定tcp协议,需要指定服务器端的IP+PORTconn,err := net.Dial("tcp","127.0.0.1:8888")if err != nil {fmt.Println("客户端连接失败:err:",err)return}fmt.Println("连接成功,conn:",conn)//通过客户端发送单行数据,然后退出:reader := bufio.NewReader(os.Stdin)//从终端读取一行用户输入的信息:str,err := reader.ReadString("\n")if err != nil {fmt.Println("终端输入失败,err",err)}//将str数据发送给服务器:n,err := conn.Write([]byte(str))if err != nil {fmt.Println("连接失败,err:",err)}fmt.Printf("终端数据通过客户端发送成功,一共发送了%d字节的数据,并退出",n)}
【2】服务器端接收数据:
package mainimport ("fmt""net")func process(conn net.Conn) {//连接用完一定要关闭:defer conn.Close()for {//创建一个切片,准备:将读取的数据放入切片buf := make([]byte, 1024)//从conn连接中读取数据:n,err := conn.Read(buf)if err != nil {return}//将读取内容在服务器端输出:fmt.Println(string(buf[0:n]))}}func main() {fmt.Println("服务端启动了...")listen,err := net.Listen("tcp","127.0.0.1:8888")if err != nil {fmt.Println("监听失败,err:",err)return }for{conn,err2 := listen.Accept()if err2 != nil {fmt.Println("客户端的等待失败,err2:",err2)}else {fmt.Printf("等待连接成功,con=%v,接收到的客户端信息:%v \n",conn,conn.RemoteAddr().String())}//准备一个协程,协程处理客户端服务请求://不同的客户端的请求,连接conn不一样的go process(conn)}}
关键词:
引入【1】网络编程:把分布在不同地理区域的计算机与专门的外部设备用
23年08月10日 23:10
人民网北京8月8日电7日,由北京第二外国语学院和北京市人民政府外事办
23年08月10日 13:54
首创证券再度涨停,6个交易日内录得4个涨停,累计涨幅为37 94%,累计换
23年08月10日 15:30
00:45齐鲁网·闪电新闻8月10日讯以大地为“画布”,用彩色水稻为“颜料
23年08月10日 19:45
2023年8月10日,截至9:37,N蓝箭大涨273 89%触发临停,成交金额超5亿
23年08月10日 21:35
8月10日A股两市盘前公告淘金:美的集团研究论证发行H股,多家公司拟回购
美的集团(000333)正在对境外发行证券(H股)并上市事项进行前期论证
23年08月10日 18:02
7月份CPI环比近6个月来首次转正—— 居民消费需求稳步回暖
【7月份CPI环比近6个月来首次转正——居民消费需求稳步回暖】国家统计
23年08月10日 23:10
企查查APP显示,近日,江苏象屿供应链管理有限公司成立,法定代表人为
23年08月10日 19:42
本报讯(记者徐慧瑶通讯员郑灿)暑运期间,学生流及旅游、探亲等出行热
23年08月10日 21:27
近日,东部战区空军某地导旅组织新排长集训,帮助他们扣好“官之初”第
23年08月10日 18:09
电力供需矛盾明显之际,作为解决方式之一的虚拟电厂热度再起。中国这个
23年08月10日 16:10
中央网信办印发《网站平台受理处置涉企网络侵权信息举报工作规范》
为更好维护保障企业和企业家网络合法权益,建立“优化营商网络环境”长
23年08月10日 22:26
8月10日,生意社甲苯基准价为8100 00元 吨,与本月初(7860 00元 吨)相
23年08月10日 15:00
对此,卓创资讯轮胎分析师郭娟对《证券日报》记者说,轮胎主要原材料价
23年08月10日 17:01
发言人指出,香港特区纪律部队忠诚担当、业务精良、纪律严明,是国家安
23年08月10日 14:57
人类从发现半导体到发现超导现象用了180年,从发现超导现象到疑似发现
23年08月10日 09:53
7月22日,一个韩国研究团队在预印本网站arXiv上提交论文,声称合成了世
23年08月10日 19:54
记者从该公司获悉,此次任务是谷神星一号系列商业运载火箭在一个月内的
23年08月10日 22:36
LPL精彩赛事依旧在火热进行中,这一次是TES和WBG的对决,很残酷的交手
23年08月10日 21:56
工伤骨折工资应该发几个月要根据伤残等级确定,比如十级伤残相应赔偿工
23年08月10日 13:23
2023-08-10 18:15
2023-08-10 18:19
2023-08-10 18:18
2023-08-10 18:15
2023-08-10 18:23
2023-08-10 18:18