网络开发的框架

  • 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() #关闭端口

网络编程 基础 基于socket的tcp和udp连接的更多相关文章

  1. 运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接

    运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接 最近在项目中可能要用到socket相关的东西来发送消息,所以初步研究了下socket的TC ...

  2. 从零开始学Python第八周:网络编程基础(socket)

    Socket网络编程 一,Socket编程 (1)Socket方法介绍 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Soc ...

  3. Python网络编程基础 ❷ 基于upd的socket服务 TCP黏包现象

    TCP的长连接 基于upd的socket服务 TCP黏包现象

  4. 基于socket的TCP和UDP编程

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  5. (转)基于socket的TCP和UDP编程

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  6. 网络编程基础之Socket套接字

    一.Socket介绍 1.什么是socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族 ...

  7. 网络编程基础之socket套接字编程实现同一IP下的信息传输

    鲁照山 1.网络协议的5层模型,每层内容的整理 2.画图描述三次握手四次挥手,和C端S端的状态 3.写一个客户端,实现给服务端发送hello world 字符串, 写一个服务端,将客户端发送的数据变成 ...

  8. 【Python网络编程】利用Python进行TCP、UDP套接字编程

    之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...

  9. 第1章 网络编程基础(2)——Socket编程原理

    Socket编程原理 Socket是网络通信端点的一种抽象,它提供了一种发送和接收数据的机制. 流socket(SOCK_STREAM):双向.有序.无重复.并且无记录边界 数据报Socket(SOC ...

随机推荐

  1. linux_20

    总结tomcat优化方法 java程序出现oom如何解决?什么场景下会出现oom? 简述redis特点及其应用场景 对比redis的RDB.AOF模式的优缺点 实现redis哨兵,模拟master故障 ...

  2. k8s集群节点ping不通其他主机的ip

    文章目录 排查过程 本地宿主机网络检查 pod网络检查 tcpdump检查网络 检查flannel网卡 检查宿主机网卡 iptables检查 解决方法 测试环境服务出现问题,服务一直报错认证超时,检查 ...

  3. Centos 7.6 使用 kubekey 部署 kubesphere v3.1.0

    文章目录 主要功能 硬件要求 Kubernetes版本要求 配置主机之间的免密 安装所需依赖 下载KubeKey 创建Kubernetes集群以及KubeSphere kk命令使用方式 修改配置文件 ...

  4. ESXI 7.0.0 U2 部署

    文章目录 什么是ESXI? ESXi 的优势 功能特性 部署ESXI 创建虚拟机 开始安装 打开浏览器输入ip进行管理 什么是ESXI? ESXI官网:https://www.vmware.com/c ...

  5. Linux爱情故事之如何以不一样的姿势(ssh)进入她的心

    文章目录 1.ssh是谁,为什么要进入她的心 2.如何正确的扒拉ssh 2.1.ssh的常用参数 2.2.您配钥匙吗?(ssh生成公钥或者秘钥) 2.3.我要单向畅通无阻的进入你的心(ssh-copy ...

  6. 【论文考古】联邦学习开山之作 Communication-Efficient Learning of Deep Networks from Decentralized Data

    B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. y Arcas, "Communication-Efficient Learni ...

  7. JVM学习——学习方法论&学习大纲

    2020年02月06日22:25:51 完成了Springboot系列的学习和Kafka的学习,接下来进入JVM的学习阶段 深入理解JVM 学习方法论 如何去学习一门课程--方法论 多讨论,从别人身上 ...

  8. Numpy的各种下标操作

    技术背景 本文所使用的Numpy版本为:Version: 1.20.3.基于Python和C++开发的Numpy一般被认为是Python中最好的Matlab替代品,其中最常见的就是各种Numpy矩阵类 ...

  9. 解决页面js、css代码样式失效

    解决方式 根据地址不同的层级深度,加上对应的 " . . / "(不推荐): 去掉所有的 " . . / ", 在js或css的路径前 加上 " / ...

  10. 每日一题:codeforces题解

    题目 B. Peculiar Movie Preferences time limit per test 2 seconds memory limit per test 512 megabytes i ...