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秒

  

 

转载于:https://www.cnblogs.com/liuafan/p/9334795.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值