网络编程

 网络开发的架构:

  • C/s   client/server

  • B/s    Browser/server

  • B/s架构更好

认识网络

  • 网卡 -- mac地址

  • 每台机器在网络中除了有一个mac地址生效,还有一个ip地址

  • 有交换机和路由器

  • 端口:通过某一个固定的端口定位到机器上的某一个应用

  • 每一台机器有很多个端口,最大的端口是65535  范围是0--65535

交换机的工作方式:

  • 单播\广播\组播

  • arp协议:通过ip找mac

  • 交换机 --->广播  将要找的机器的信息发给局域网内的所有机器

  • 交换机 ---->单播  返回要找的那台机器

  • 交换机的工作机制: 只认识mac地址,广播\单播\组播

ip协议:

  • ipv4:  4位点分十进制
  • ipv6: 6位点分十六进制

路由器的工作机制:

  • 路由表,认识ip地址

传递信息的方式:

  • Tcp协议: 可靠的\面向连接的\慢
  • UDP协议: 不可靠的\无连接的\快

TCP与UDP的区别

osi七层模型

 TCP/IP五层协议

 

套接字(socket)初使用

  • 基于TCP协议的socket

    • server端

      • import socket
        sk = socket.socket()
        sk.bind(('127.0.0.1',8898))  #把地址绑定到套接字
        sk.listen()          #监听链接
        conn,addr = sk.accept() #接受客户端链接
        ret = conn.recv(1024)  #接收客户端信息
        print(ret)       #打印客户端信息
        conn.send(b'hi')        #向客户端发送信息
        conn.close()       #关闭客户端套接字
        sk.close()        #关闭服务器套接字(可选)

         

    • client端 

      • import socket
        sk = socket.socket()           # 创建客户套接字
        sk.connect(('127.0.0.1',8898))    # 尝试连接服务器
        sk.send(b'hello!')
        ret = sk.recv(1024)         # 对话(发送/接收)
        print(ret)
        sk.close()            # 关闭客户套接字

         

posted @ 2019-05-27 17:20  Python张梦书  阅读(130)  评论(0编辑  收藏  举报