• 第65天python学习TCP 和 UDP流程差异


    tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端。

    服务器:

    ss = socket() #创建服务器套接字
    ss.bind()      #把地址绑定到套接字
    ss.listen()      #监听链接
    inf_loop:      #服务器无限循环
        cs = ss.accept() #接受客户端链接
        comm_loop:         #通讯循环
            cs.recv()/cs.send() #对话(接收与发送)
        cs.close()    #关闭客户端套接字
    ss.close()        #关闭服务器套接字

    客户端:
     cs = socket()    # 创建客户套接字
     cs.connect()    # 尝试连接服务器
     comm_loop:        # 通讯循环
         cs.send()/cs.recv()    # 对话(发送/接收)
     cs.close()            # 关闭客户套接字



    udp是无链接的,先启动哪一端都不会报错
    服务器:
    ss = socket()   #创建一个服务器的套接字
    ss.bind()       #绑定服务器套接字
    while True :       #服务器无限循环
        cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)
    ss.close()                         # 关闭服务器套接字
    客户端:
    cs = socket()   # 创建客户套接字
    while True :      # 通讯循环
        cs.sendto()/cs.recvfrom()   # 对话(发送/接收)
    cs.close()                      # 关闭客户套接字


    UDP实例化:服务器:
    import socket
    ip_port=('127.0.0.1',9000)
    udp_server_client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    udp_server_client.bind(ip_port)
    
    while True:
        msg,addr=udp_server_client.recvfrom(1024)
        print(msg,addr)
    
        udp_server_client.sendto(msg.upper(),addr)

    UDP实例化:客户端:
    from socket import *
    
    udp_cs=socket(AF_INET,SOCK_DGRAM)
    
    while True:
        msg=input('>>: ').strip()
        if not msg:continue
        udp_cs.sendto(msg.encode('utf-8'),('127.0.0.1',9000))
        msg,addr=udp_cs.recvfrom(1024)
        print(msg.decode('utf-8'),addr)
     
  • 相关阅读:
    API设计和微服务
    Eolinker与API文档
    mysql由浅入深探究(一)----数据库简介与mysql安装
    HttpSession详解
    运行python程序的时候不停的输出destroy和clean信息
    ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY
    GitLab / Github如何修改默认主分支
    mac安装pyenv和遇到的奇怪问题
    Python Pytest装饰器@pytest.mark.parametrize详解
    gitLab项目左侧找不到”setting"选项链接
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11874149.html
Copyright © 2020-2023  润新知