网络开发的框架

  • C/S B/S 架构

    • 程序都是bs架构的程序(b指浏览器,s指服务器)
    • c(client)是客户端,s(server)是服务器
    • bs架构是cs架构的一种
    • 未来的趋势,
      • pc端bs架构,统一了程序的入口
      • 手机端 微信公众号,统一了程序的入口
  • socket

    • 起一个tcp协议的socket进行通信

      • # tcp协议
        #客户端
        # import socket
        # rev = socket.socket()
        # # rev.bind(("ip地址",端口号)) #端口号一般取8000- 9999
        # rev.listen() #开启服务端
        #
        # msg,addr = rev.accept() #三次握手过程,显示连接服务端的用户端地址
        # msg.send("你好".encode("utf-8")) #给用户端发消息,需要进行编码
        # mv = msg.recv(1024) #接受用户端回的消息,限制一次接受的最大字节
        # print(mv.decode("utf-8")) #打印接受到的消息,需要解码
        # msg.close() #关闭用户端的连接
        # rev.close() #关闭服务端
        # 用户端
        # import socket
        # cli = socket.socket()
        # cli.connect(("ip地址",端口号)) #连接服务端
        # msg = cli.recv(1024) #接收信息
        # print(msg.decode("utf-8")) #打印消息
        # mv = input("》》》》》:")
        # cli.send(mv.encode("utf-8")) #发消息
        # cli.close() #关闭用户端

        利用端口传输视频

        import socket
        rev = socket.socket()
        rev.bind(("127.0.0.1",8989))
        rev.listen() conn,addr = rev.accept()
        filname = conn.recv(1024) with open(filname.decode("utf-8"),"wb") as f:
        while True:
        content = conn.recv(1024)
        if content == b"ok":break
        f.write(content)
        print("接收完毕")
        conn.close()
        rev.close() import time
        import os
        import socket
        cli = socket.socket()
        cli.connect(("127.0.0.1",8989))
        cli.send("file".encode("utf-8"))
        time.sleep(0.1)
        size = os.path.getsize("file")
        with open("file","rb") as f:
        while size:
        content = f.read(1024)
        size -= len(content)
        cli.send(content)
        cli.send(b"ok")
        print("传输完毕")
        cli.close()
    • 起一个udp协议的socket进行通信

    • # udp协议
      # import socket
      # rev = socket.socket(type=socket.SOCK_DGRAM)
      # rev.bind(("ip地址",端口号))
      #
      # msg,addr = rev.recvfrom(1024) #接收到的消息
      # print(msg.decode("utf-8"))
      # rev.sendto("你好".encode("utf-8",addr)) #发消息,需要对方的ip地址
      # rev.close() #关闭端口 # import socket
      # cli = socket.socket(type=socket.SOCK_DGRAM)
      # cli.sendto("信息".encode("utf-8"),("ip地址",端口号)) #发消息
      # mv,addr = cli.recvfrom(1024) #接收信息和ip地址
      # print(mv.decode("utf-8")) #打印信息
      # cli.close() #关闭端口

最新文章

  1. Atitit.研发管理软件公司的软资产列表指南
  2. window.top.location.href 和 window.location.href 的区别
  3. UVA 11168 Airport(凸包+直线方程)
  4. Javascript初学篇章_8(事件)
  5. shell简单用法笔记(shell中数值运算)二
  6. 第一个PyQt程序
  7. XCActionBar 「Xcode 中的 Alfred」
  8. mysql root强密码的必要性max_allowed_packet被改成1024引起的风险
  9. 【JAVA、C++】LeetCode 011 Container With Most Water
  10. shell中for循环总结
  11. java_文件类
  12. CMD相关命令初探
  13. android Animation笔记
  14. POJ1035——Spell checker(字符串处理)
  15. Installutil.exe的位置和路径
  16. CSS常见兼容性问题总结
  17. 36. leetcode 415. Add Strings
  18. 基于Windows环境下MyEclipse10快捷键总结
  19. argparse库 学习记录
  20. 第51节:Java当中的集合框架Map

热门文章

  1. Lesson17——NumPy 统计函数
  2. PHP面试常考内容之Memcache和Redis(1)
  3. 大话PHP设计模式笔记
  4. 基于Xilinx XCKU115的半高PCIe x8 硬件加速卡
  5. Solution -「CF 1349D」Slime and Biscuits
  6. Office RTF远程模板注入
  7. Spring Boot数据访问之Druid连接池的配置
  8. Abp 异常处理
  9. 巧用阿里云同步k8s.gcr镜像
  10. 如何将k8s中的某些节点单独、仅给某些应用来使用