UDP聊天小程式 多執行緒(Python)

2021-10-25 13:01:08 字數 1965 閱讀 2383

import socket

defsend_msg

(udp_socket)

: dest_ip=

input

("輸入對方ip:"

) dest_port=

int(

input

("輸入對方埠:"))

send_data=

input

("輸入訊息:"

) udp_socket.sendto(send_data.encode(

"utf-8"),

(dest_ip,dest_port)

)# encocde為編碼

defrecv_msg

(udp_socket)

: rev_data=udp_socket.recvfrom(

1024

)print

("%s:%s"%(

str(rev_data[1]

),rev_data[0]

.decode(

"utf-8"))

)# decode為解碼

defmain()

:# 建立套接字

udp_socket=socket.socket(socket.af_inet,socket.sock_dgram)

# 繫結埠

udp_socket.bind((''

,7788))

while

true

:# 傳送訊息

send_msg(udp_socket)

# 接收訊息

recv_msg(udp_socket)

if __name__ ==

'__main__'

: main(

)

多執行緒版,能同時收發訊息:

import socket

import threading

defrecv_msg

(udp_socket)

:while

true

: recv_data=udp_socket.recvfrom(

1024

)print

("接收到的訊息:%s"

%str

(recv_data[0]

.decode(

"utf-8"))

)def

send_mag

(udp_socket,dest_ip,dest_port)

:while

true

: send_data=

input

("輸入傳送的訊息:"

) udp_socket.sendto(send_data.encode(

"utf-8"),

(dest_ip,dest_port)

)def

main()

: udp_socket=socket.socket(socket.af_inet,socket.sock_dgram)

udp_socket.bind((""

,7890))

dest_ip=

'輸入主機的ip位址'

dest_port=

8080

t_recv=threading.thread(target=recv_msg,args=

(udp_socket,))

t_send=threading.thread(target=send_mag,args=

(udp_socket,dest_ip,dest_port))

t_recv.start(

) t_send.start(

)if __name__ ==

'__main__'

: main(

)

UDP聊天小程式 多執行緒(Python)

本程式使用了網路測試工具作為另一端聊天工具,自己寫程式實現與網路測試工具的聊天,使用的是本地位址127.0.0.1,也可開一虛擬機器。本專案主要 使用socket進行資訊傳輸 dest ip input 輸入對方ip dest port int input 輸入對方埠 send data input...

UDP協議實現聊天小程式

今天我們用之前講解過的udp協議來寫乙個最基礎,最簡單的網路聊天程式。我們通過udp協議來實現乙個簡單的網路聊天程式 這是客戶端的實現 過程 1.建立套接字 2.繫結位址資訊 3.向服務端傳送資料 4.接受服務端傳送的資料 5.關閉socket include include include inc...

python實現udp多執行緒聊天器

import socket import threading def recv msg udp socket 接收資料並顯示 接收資料 while true recv data udp socket.recvfrom 1024 print recv data def send msg udp soc...