Python實現多工版的udp聊天器

2022-09-25 09:12:09 字數 1203 閱讀 8568

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...