zoukankan      html  css  js  c++  java
  • Python9-网络编程2-day31

    基于UDP协议的socket

    #server
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    sk.bind(('127.0.0.1',8080))
    msg,addr = sk.recvfrom(1024)
    print(msg.decode('utf-8'))
    sk.sendto(b'bye',addr)
    sk.close()
    
    #client
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    ip_port = ('127.0.0.1',8080)
    sk.sendto(b'hellog',ip_port)
    ret,addr = sk.recvfrom(1024)
    print(ret.decode('utf-8'))
    # udp的server 不需要进行监听也不需要建立连接
    # 在启动服务之后只能被动的等待客户端发送消息过来
    # 客户端发送消息的同时会自带地址信息
    # 消息回复的时候,不需要发送信息,还需要把对方的地址发送过去
    QQ的UPD聊天代码
    #server
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    sk.bind(('127.0.0.1',8080))
    while True:
        msg,addr = sk.recvfrom(1024)
        print(addr)
        print(msg.decode('utf-8'))
        info = input('>>>>>>>').encode('utf-8')
        sk.sendto(info,addr)
    
    sk.close()
    
    #tim
    
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    ip_port = ('127.0.0.1',8080)
    while True:
        info = input('Tim: ')
        info = ('33[32m来自Tim的消息:%s33[0m'%info).encode('utf-8')
        sk.sendto(info,ip_port)
        msg,addr = sk.recvfrom(1024)
        print(msg.decode('utf-8'))
    sk.close()
    
    #tigger
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    ip_port = ('127.0.0.1',8080)
    while True:
        info = input('Tigger: ')
        info = ('33[34m来自Tigger的消息:%s33[0m'%info).encode('utf-8')
        sk.sendto(info,ip_port)
        msg,addr = sk.recvfrom(1024)
        print(msg.decode('utf-8'))
    sk.close()

    黏包问题

    import subprocess
    ret = subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    print('stdout: ',ret.stdout.read().decode('gbk'))
    print('stderr: ',ret.stderr.read().decode('gbk'))


  • 相关阅读:
    局部变量、结构体和main函数
    类、对象和方法
    Archiver 浅析
    NSArry的常见方法
    iOS 键盘隐藏
    //获取拼音首字母
    UI通过UISlider编写游戏第六感
    UI中各种手势的使用点击,捏合,清扫,旋转,平移,边缘移动,长按
    IOS学习笔记 -- Modal和Quartz2D
    多控制器管理练习 -- 私人通讯录
  • 原文地址:https://www.cnblogs.com/zhangtengccie/p/10360256.html
Copyright © 2011-2022 走看看