tcp和udp協議的聊天 和udp協議的時間同步機制-----編碼

tcp協議聊天python

服務端::服務器

 

客戶端socket

 

udp協議的聊天tcp

 

############    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秒
相關文章
相關標籤/搜索