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