udp網路程式設計

2021-10-05 14:45:20 字數 1833 閱讀 5976

title

date

br#description

udp網路程式設計

2019-09-15 13:33:13 -0700

udp

python網路程式設計

python

udp可以模擬寫信的模式,在通訊之前不需要建立連線

import socket

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

使用sendto()方法

send_data = input("please input:")

# 傳送的資料(utf-8編碼) (ip位址, 埠)

udp_socket.sendto(send_data.encode("utf-8"), ("x.x.x.x", port)) # 如果傳送方未繫結埠,系統會隨機分配1024-65535

# 建立元組,ip位址和埠號

local_addr = ("", 7788) # ip位址一般不用寫,表示本機的任意乙個ip

# 繫結

udp_socket.bind(local_addr)

import socket

def send_msg(udp_socket):

"""傳送資料"""

dest_ip = input("請輸入對方的ip:")

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

send_data = input("請輸入傳送的訊息:")

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

def recv_msg(udp_socket):

"""接收資料"""

# 接收資料,1024是本次接收的最大位元組數,如果未接收到會進入阻塞狀態

recv_data = udp_socket.recvfrom(1024) # 會接收到資料和傳送方的ip位址和埠

recv_msge = recv_data[0]

send_addr = recv_data[1]

# 列印接收到的資料, 需要指定解碼,如果是windows傳送,應當使用gbk解碼

def main():

# 建立套接字

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

# 繫結資訊

udp_socket.bind(("", 7788))

while true:

print("0退出,1傳送,2接收")

option = input("請輸入指令:")

if option == "0":

break

elif option == "1":

# 傳送

send_msg(udp_socket)

elif option == "2":

# 接收並顯示

recv_msg(udp_socket)

else:

print("輸入錯誤,請重新輸入")

if __name__ == "__main__":

main()

socket套接字是全雙工工作模式,即可以同時收發

UDP網路程式設計

基於udp 伺服器 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到socket上,用函式bind 3.迴圈接收資料,用recvfrom 4.關閉網路連線。基於udp 客戶端 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到...

UDP網路程式設計

基於udp 通訊模型 由上圖可以看出udp通訊的步驟如下 基於udp 伺服器 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 迴圈接收資料,用函式recvfrom 4 關閉網路連線 基於udp 客戶端 1 建立乙個socket,用函式so...

網路程式設計 UDP

網路程式設計傳輸層選擇乙個資料控制模式 tcp或者udp,前面我們已經介紹了tcp程式設計,這篇我們簡單的來看看udp程式設計。udp是無連線的不可靠的資料報服務。udp協議在ip協議上增加了復用 分用和差錯檢測功能。udp的特點 a 是無連線的。相比於tcp協議,udp協議在傳送資料前不需要建立連...