1、編寫乙個有2個執行緒的程式。
2、執行緒1用來接收資料然後顯示。
3、執行緒2用來檢測鍵盤資料然後通過udp傳送數wxwyc據
import socket
import threading
def send_msg(udp_socket):
"""獲取鍵盤資料,並將其傳送給對方"""
while true:
# 1. 從鍵盤輸入資料
msg = input("\n請輸入要傳送的資料:")
# 2. 輸入對方的ip位址
dest_ip = input("\n請輸入對方的ip位址:")
# 3. 輸入對方的port
dwxwycest_port = int(input("\n請輸入對方的port:"))
# 4. 傳送資料
udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))
def recv_msg(udp_sock
"""接收資料並顯示"""
while true:
# 1. 接收資料
recv_msg = udp_socket.recvfrom(1024)
# 2. 解碼
recv_ip = recv_msg[1]
recv_mswxwycg = recv_msg[0].decode("utf-8")
# 3. 顯示接收到的資料
print(">>>%s:%s" % (str(recv_ip), recv_msg))
def main():
# 1. 建立套接字
udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)
# 2. 繫結本地資訊
udp_socket.bind(("", 7890))
# 3. 建立乙個子執行緒用來接收資料
t = threading.thread(target=recv_msg, args=(udp_socket,))
t.start()
# 4. 讓主線程用來檢測鍵盤資料並且傳送
send_msg(udp_socket)
if __name__ == "__main__":
main()
本文標題: python實現多工版的udp聊天器
本文位址:
Python 多工之協程(3)實現多工
學習理解迭代器和生成器之後,開始使用協程來實現多工 當乙個函式中包含yield關鍵字,那麼這個函式就不再是乙個普通的函式,它的返回值是乙個生成器物件。我們可以使用next 或send 函式來啟動喚醒生成器物件,當程式第一次執行到yield時,程式暫停執行,並返回yield後邊跟的變數,當再次喚醒時,...
實現多工
多工介紹 簡單來說就是作業系統可以同時執行過個任務 單核cpu作業系統會讓各個任務交替執行 真正的多工只能在多核cpu上實現,也就是並行和併發2 併發 併發 指的是任務數多於cpu核數,通過作業系統的各種任務排程演算法,實現用多個任務 一起 執行 實際上總有一些任務不在執行,因為切換任務的速度相當快...
python 多工回顧
回顧一下 python的多工 coding utf 8 import threading 執行緒 import gevent 協程 from time import sleep,ctime from multiprocessing import process 程序 from multiproces...