go系列-笔记(第六天)
Posted xiangjai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go系列-笔记(第六天)相关的知识,希望对你有一定的参考价值。
目录
协议:
一组规则。要求使用协议的双方,必须严格遵守协议内容。
网络分层架构:
OSI七层模型结构体:物、数、网、传、会、表、应
TCP/IP四层模型:数、网、传、应
各层功能:
链路层:ARP
源mac——目标mac
ARP协议作用:借助IP获取mac地址。
网络层:IP
源IP——目标IP
IP协议的作用:在网络环境中唯一标识一台主机。
IP地址本质:2进制数。——点分十进制IP地址(string)
传输层:TCP/UDP
port——在一台主机上唯一标识一个进程。
应用层:ftp、http、自定义
对数据进行封装。解封装。
数据通信过程:
封装:应用层——传输层——网络层——链路层。没有经过封装的数据,不能在网络环境中传递。
解封装:链路层——网络层——传输层——应用层
总结通信过程:
1.mac地址(不需要用户指定)(ARP协议)Ip——>mac
2.IP地址(需要用户指定)——确定主机
3.port端口号(需要用户指定)——确定程序
1.不能使用系统占用的默认端口。5000+端口我们使用(8080)
2.65535为端口上限。
socket:套接字。
网络通信过程中,socket一定是成对出现的。
网络应用设计模式:
C/S:
优点:数据传输效率高、协议选择灵活
缺点:工作量大、安全性构成威胁
B/S:
优点:开发工作较小、不受平台限制、安全威胁小
缺点:缓存数据差、协议选择不灵活、
TCP-CS服务器:
1.创建监听socketlistener:=net.Listen("TCP","IP+port")IP+port——服务器自己的IP和port
2.启动监听conn:=listener.Accept()conn用于通信的socket
3.conn.Read()
4.处理使用数据
5.conn.Write()
6.关闭listener、conn
nc工具环境变量配置。
1.解压netcat-win32-1.12.zip文件到指定目录
2.拷贝解压后目录,保存到环境变量:
方法:我的电脑-->属性-->高级系统设置-->环境变量-->系统变量中找“path”-->双击它-->新建-->粘贴
3.启动cmd执行nc命令充当客户端测试
4.nc127.0.018000(注意IP和端口之间是“空格”)
5.输入hellosocket。服务器应该能读到并向服务器的屏幕打印“hellosocket”
TCP-CS客户端:
1.conn,err:=net.Dial("TCP",服务器的IP+port)
2.写数据给服务器conn.Write()
3.读取服务器回发的数据conn.Read()
4.conn.Close()
TCP-CS并发服务器:
1.创建监听套接字listener:=net.Listen("tcp",服务器的IP+port)//tcp不能大写
2.deferlistener.Close()
3.for循环阻塞监听客户端连接事件conn:=listener.Accept()
4.创建go程对应每一个客户端进行数据通信goHandlerConnet()
5.实现HandlerConnet(connnet.Conn)
1)deferconn.Close()
2)获取成功连接的客户端Addrconn.RemoteAddr()
3)for循环读取客户端发送数据conn.Read(buf)
4)处理数据小——大strings.ToUpper()
5)回写转化后的数据conn.Write(buf[:n])
服务器判断关闭:
Read读客户端/服务器,返回0——对端关闭!
nc命令发送数据时,默认在结尾自带‘\\n’
TCP-CS并发客户端:
1.匿名go程,获取键盘输入,写给服务器
2.for循环读取服务器回发数据
发送数据时,默认在结尾自带‘\\r\\n’
TCP通信过程:
三次握手:
1.主动发起请求端,发送SYN
2.被动建立连接请求端,应答ACK同时发送SYN
3.主动发起请求端,发送应答ACK
标志TCP三次握手建立完成。——server:Accept()返回。——client:Dial()返回。
四次挥手:
1.主动关闭连接请求端,发送FIN
2.被动关闭连接请求端,应答ACK
标志。半关闭完成。——close()
3.被动关闭连接请求端,发送FIN
4.主动关闭连接请求端,应答ACK
标志。四次挥手建立完成。——close().
分析图:
并发网络通信
通信过程
协议
socket
TCP-CS通信
TCP三次握手 4次挥手
以上是关于go系列-笔记(第六天)的主要内容,如果未能解决你的问题,请参考以下文章