Python 网络Socket模块 编程

一、网络基础相关知识

  1. 网络基础相关的知识

     (1) 架构

      a. C/S 架构: client客户端和server服务器端

      优势:能充分发挥PC机的性能

      b. B/S 架构:Browser浏览器和server服务器

      B/S架构:统一了应用的接口

   (2) 通信的事:

      a. 同一台电脑上两个py程序通信:打开一个文件

      b.两个电脑如何通信:连一个网线

      c.多个电脑通信:

          广播:吼一嗓子

          单薄:一对一

          组播:一对多

        更多个计算机之间通信:交换机+路由器

    (3)说一说路由器和交换机的区别:

      交换机的主要功能是组织局域网,经过交换机内部处理解析信息之后,将信息以点对点,点对多的形式,发送给固定端

      路由器的主要功能:进行跨网段进行数据传输,路由选择最佳路劲

    (4) mac地址:物理地址,全球唯一,类似于一个人的身份证

    (5) ip地址:逻辑地址,四位点分十进制,类似于一个人的的学号

    (6) 端口:操作系统为本机上的应用程序随机分配一个接口(0--65535个端口,0--1023是个自定义端口)

    (7) 网段:一个局域网内ip地址的范围

    (8)   子网掩码:用来计算网段的,子网掩码  &  ip地址

    (9) arp协议:通过目标ip地址获取目标mac地址的一个协议

      (10)  OSI五层模型: 物理层                  光纤,集线器,网线

              数据链路层           交换机,网卡,网桥             arp协议

              网络层                  路由器,三层交换机              ip协议

              传输层                  四层交换机,四层路由器       UDP TCP 协议

              应用层                                                                 http,https,ftp协议

 

二、socket模块

1.协议

  TCP 协议    面向连接    可靠的   面向字节流形式的

  UDP 协议    无连接的    不可靠   面向数据包形式的

2.编码流程

TCP 协议编码流程:

  服务器端:                                       客户端:

  实例化对象                                      实例化对象

  绑定IP地址和端口号

  监听

  接收客户端的连接                            连接服务器

  收发                                                  收发

  关闭                                                   关闭

3.回环地址:

  回环地址:127.0.0.1  每个计算机都有这么一个本机地址,只能被本机识别,不会被其他机器识别

4.三次握手和四次断开连接  

tcp三次握手一定client先发起请求

             a  客户端发起请求连接服务器

             b  服务器返回 : 接收到请求,并要求连接客户端

             c  客户端回复 : 可以连接

       四次挥手:  谁先发起断开连接的请求都可以

             a  客户端发起断开连接的请求:

                  意思: 我想和你断开连接,我没有数据要继续发送了,但是如果你有数据需要发送,我可以继续接收

                b  服务器回复 : 我接收到你的请求了

                c  服务器发送 : 我已经准备好断开连接

                d  客户端回复 : 收到你的信息,断开连接

 

三、粘包问题:只有tcp协议才会发送粘包,udp不会发生

posted @ 2018-08-14 20:44  Chamster  阅读(138)  评论(0编辑  收藏  举报