Python--网络编程学习系列笔记01


网络编程基本目标:

    不同的电脑上的软件能够实现数据传输

网络编程基础知识:

    IP地址:
      用来在网络中标记一台电脑

       网络号+主机号(按网络号和主机号占位分类A,B,C, D(多点广播以1110开始,), E)
         查看自己的IP:
       windows系统:ipconfig
      mac,Linux等系统:ifconfig (up/down 网卡名,开启关闭对应网卡)
    IP地址的分类:

                ipv4(ip version 4):192.168.1.1(256**4,每组都在0-255之间)

               ipv6(ip version 6):fe70::3422:1324:2343:2342%44

       ipv5  (ip version 5):  用于实验室研究

   

    端口(port):

          类似IP地址,标记电脑上运行的软件

    查看端口:netstat-an

    端口的分类:

    Linux中端口2**16=65536之多,因此操作系统为了管理进行了编号即端口号(只有整数0-65536之间)

      知名端口:(well known ports)(0-1023)

          80端口:分配http服务()万维网服务
          21端口:FTP服务(ftp文件传输)
          SMTP:电子邮件服务

      动态端口:(1024-65535)

          主机分配给系统应用或软件使用

 

IP地址+协议+端口 就可以标识网络的进程,网络中的进程通信就可以利用这个标志与其他进程交互


  socket(简称:套接字)
    简介:socket是进程之间一种通信方式
         在Python中使用socket模块的函数socket就可以完成
    注意:socket.socket函数创建socket时带有两个参数
      一:Address Family(AF_INET--Internet进程间通信或AF_UNIX--同一台机器间通讯)
         二:Type(套接字类型,可以是SOCK_STREAM--流式套接字主要用于TCP协议,或者SOCK_DGRAM--数据报套接字主要用于UDP协议)

 

 聊天室实现第一步:

    发送消息

 

 聊天室实现第二步

    如何接收消息

 

实战: udp聊天室完整代码实现