
network
Lich Howger
这个作者很懒,什么都没留下…
展开
-
64-网络分层架构
我们来说一下网络分层架构 网络传输其实是分层组织的, 每一层都有自己的功能 每一层其实都靠着下一层来支持 为什么要分层管理呢 1.各层之间相互独立,上层不需要知道下层如何实现 2.灵活性好,各层都可以采用最适合的技术来实现 3.易于实现和标准化 网络分层有两种模式 1.OSI 七层 2.TCP 四层 这是两种不同的组织发布的两种分层 先说OSI,是国际标准 1.物理层 2....原创 2018-11-25 21:55:21 · 309 阅读 · 0 评论 -
65-UDP通信
UDP通信 UDP是无连接的,不可靠的报文传输,但是速度很快 由于UDP是无连接的,所以服务器端不需要额外创建监听的套接字 只用指定好IP和port端口,监听这个地址,等待客户端直接通信即可 我们来写一个简单的服务器和客户端 涉及到的方法有: func ResolveUDPAddr(net, addr string) (*UDPAddr, error) func ListenUD...原创 2018-11-26 14:02:31 · 164 阅读 · 0 评论 -
66-TCP浅析
TCP通信包括3次握手和4次挥手 我们分别来说一下 第一阶段.三次握手 1.首先client给server发送一个随机的SYN号 2.s收到这个SYN后,会发送一个SYN+1的ACK确认号,并且同时发送另一个随机的SYN号 3.c收到s发送的ACK和SYN,就发送一个s的SYN+1的ACK确认号 这样就是三次握手了 很简单吧 第二阶段.数据传输 1.c开始发送数据,会在刚刚s发送...原创 2018-11-26 14:03:01 · 388 阅读 · 0 评论 -
67-TCP传输文件
先来服务器端 func main() { listener, err := net.Listen("tcp", "127.0.0.1:8080") if err != nil { fmt.Println("创建监听器失败...") return } defer listener.Close() fmt.Println("创建监听器成功...") for { ...原创 2018-11-26 14:03:33 · 242 阅读 · 0 评论 -
68-TCP通信
golang简单服务器 func main() { //第一步:创建用于侦听的套接字 listener,err:=net.Listen("tcp","127.0.0.1:8080") //创建侦听器 if err!=nil{ fmt.Println("监听器创建失败:",err) return } defer listener.Close() fmt.Printl...原创 2018-11-26 14:04:07 · 203 阅读 · 0 评论 -
72-并发聊天室
go并发聊天室 我们先来写简单的listen和conn func main() { listener, err := net.Listen("tcp", "127.0.0.1:8080") if err != nil { fmt.Println("监听器创建失败...") return } defer listener.Close() fmt.Println("监听...原创 2018-11-27 22:24:31 · 186 阅读 · 0 评论 -
126-Servlet统计网页访问次数
我们来统计一下网页的访问次数 创建个项目 创建个Servlet 我们先来一个BaseServlet 可以作为基类 方便管理 public class BaseServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse...原创 2018-12-11 15:50:46 · 592 阅读 · 0 评论 -
128-请求转发和请求包含
请求转发和请求包含 在说这两个东西之前 我想说一下 请求转发和重定向的区别 请求转发----重定向 区别 1.请求转发是1个请求,也就是A把请求直接给了B 重定向是2个请求,A收到请求,再向B发一个请求 2.请求转发只能是一种请求方式,GET或者POST 重定向的第二个请求一定是GET 3.请求转发的地址栏不会发生变化, 重定向的地址会变化,因为是两个请求 4.请求转发只能...原创 2018-12-11 17:20:01 · 276 阅读 · 0 评论