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協議在傳送資料前不需要建立連...