應用 udp聊天器

2021-09-26 08:31:24 字數 1551 閱讀 7369

網路通訊過程

網路通訊過程中,之所需要ip、port等,就是為了能夠將乙個複雜的通訊過程進行任務劃分,從而保證資料準確無誤的傳遞

在乙個電腦中編寫1個程式,有2個功能

1.獲取鍵盤資料,並將其傳送給對方

2.接收資料並顯示

並且功能資料進行選擇以上的2個功能呼叫

要求實現上述程式

參考**

import socket

def send_msg(udp_socket):

"""獲取鍵盤資料,並將其傳送給對方"""

# 1. 從鍵盤輸入資料

msg = input("\n請輸入要傳送的資料:")

# 2. 輸入對方的ip位址

# 3. 輸入對方的port

dest_port = int(input("\n請輸入對方的port:"))

# 4. 傳送資料

udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))

def recv_msg(udp_socket):

"""接收資料並顯示"""

# 1. 接收資料

recv_msg = udp_socket.recvfrom(1024)

# 2. 解碼

recv_ip = recv_msg[1]

recv_msg = 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))

while true:

# 3. 選擇功能

print("="*30)

print("1:傳送訊息")

print("2:接收訊息")

print("="*30)

op_num = input("請輸入要操作的功能序號:")

# 4. 根據選擇呼叫相應的函式

if op_num == "1":

send_msg(udp_socket)

elif op_num == "2":

recv_msg(udp_socket)

else:

print("輸入有誤,請重新輸入...")

if __name__ == "__main__":

main()

想一想

以上的程式如果選擇了接收資料功能,並且此時沒有資料,程式會堵塞在這,那麼怎樣才能讓這個程式收發資料一起進行呢?別著急,學習完多工知識之後就解決了o(∩_∩)o…

應用 udp聊天器

說明 在乙個電腦中編寫1個程式,有2個功能 1.獲取鍵盤資料,並將其傳送給對方 2.接收資料並顯示 並且功能資料進行選擇以上的2個功能呼叫 要求實現上述程式 參考 import socket def send msg udp socket 獲取鍵盤資料,並將其傳送給對方 1.從鍵盤輸入資料 msg ...

UDP聊天器專案

由於udp通訊不是面向連線的,且雙方都可以利用套接字進行收發資訊 import socket def send msg udp socket dest ip input 請輸入你的ip dest port int input 請輸入你的埠 send data input 請輸入要傳送的資訊 將資訊傳...

多工UDP聊天器

任務說明 import socket import threading 傳送資料函式 def send msg udp socket send content input 請輸入您要傳送的資料 send data send content.encode gbk dest port int input...