• tcp和udp协议的聊天 和udp协议的时间同步机制-----编码


    tcp协议聊天

    服务端::

    客户端

    udp协议的聊天

    ############    udp协议    ###########
    服务器
    
    import socket
    sk = socket.socket(type = socket.SOCK_DGRAM)         ##udp协议
    sk.bind((ip地址,端口号))                         
    while 1:
           msg_r,addr = sk.recvfrom(1024)                ##接收来自哪里的消息
           print(msg_r.decode('utf-8'),addr)              ##把收到的内容解码出来
           if msg_r.decode('utf-8')  == 'q':
                  continue
           user = input('>>>')
           sk.sendto(user.encode('utf-8'),addr)           
           if user == 'q':
                 break
    sk.close()
    
    
    
    
    
    客户端:
    
    import socket
    sk = socket.socket(type = socket.SOCK_DGRAM)
    while 1:
           mag = input('>>>>')
           sk.sendto(mag.encode('utf-8')(服务器ip地址,服务器那边的端口号)
           if mag == 'q':
                 break
           mag_r,addr = sk.recvfrom(1024)
           print(mag_r.decode(''utf-8))
           if mag_r.decode() == 'q':
                   break
         
    

      

    ################     时间同步机制     ####################
    服务器:
    
    import socket                     ##引进socket模块
    import time                        ##引进时间模块
    sk = socket.socket(type = socket.SOCK_DGRAM)     ##实例化    DGRAM 是udp  这个位置是固定的
    sk.bind(ip地址,端口号)
    
    while 1:
            tm_format,addr = sk.recvfrom(1024)     ##接收的是1024个字节 
            tm_format = tm_format.decode('utf-8')  ##%Y/%m/%d %H:%M:%S
            local_tm = time.strftime(tm_format)      ##获取到了对应格式的当前时间
            sk.sendto(local_tm.encode('utf-8'),addr)   ##返回给客户端  
    
    
    
    
    客户端:
    
    import socket                        ##引入socket模块
    import time                          ##引入time模块
    sk = socket.socket(type = socket.SOCK_DGRAM)     ##udp协议固定的
    tm_format = input('>>>')          ##输入
    while 1:
           sk.sendto(tm_format.encode('utf-8'),(ip地址,端口号))     ##发送出去
           local_tm,addr = sk.recvfrom(1024)        ##接收1024个字节
           print(local_tm,decode('utf-8'))         ##解码
           time.sleep(2)                                 ##停顿2秒
    

      

  • 相关阅读:
    上传图片至fastdfs显示连接超时
    Linux上安装maven
    multipartFile.getOriginalFilename();不能获取原文件名称,也就是含有路径名
    /usr/bin/ld: cannot find -lfdfsclient
    linux开放22端口
    Ajax上传file出现的bad request问题
    easyui combobox实现下拉自动提示补全功能
    js格式化时间
    codeforces 780B
    codeforces 61 D 115 A
  • 原文地址:https://www.cnblogs.com/liuafan/p/9334795.html
Copyright © 2020-2023  润新知