怎么實現(xiàn)Udp接收數(shù)據(jù)

本篇內(nèi)容主要講解“怎么實現(xiàn)Udp接收數(shù)據(jù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么實現(xiàn)Udp接收數(shù)據(jù)”吧!

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),常州企業(yè)網(wǎng)站建設(shè),常州品牌網(wǎng)站建設(shè),網(wǎng)站定制,常州網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,常州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

udp接收數(shù)據(jù),網(wǎng)絡(luò)調(diào)試助手擔(dān)任發(fā)送方,但發(fā)送時需要對方的也就是虛擬機(jī)的ip 和端口,ip可以通過config獲取,那么如何讓一個程序擁有一個固定端口呢?

創(chuàng)建套接字的時候是沒有端口號的,好比買了手機(jī)沒有手機(jī)號,別人是找不到你的,所以要有一個固定的端口號,用udp_socket.bind()綁定一個端口

接下來寫程序,終端中:

vim 05 綁定端口用來接收數(shù)據(jù).py

寫程序的思路: if name==“main”:

main()

然后再def main():

在這個函數(shù)里寫代碼。

用注釋來搭建流程

#1、創(chuàng)建套接字

#2、綁定一個本地信息

#3、接收數(shù)據(jù)

#4、打印接收到的數(shù)據(jù)

#5、關(guān)閉套接字

流程搭建完之后開始寫代碼,創(chuàng)建套接字的時候,用的是socket.XX,此時需要在代碼的最上方導(dǎo)入socekt,用到什么導(dǎo)什么,代碼不是從第一行開始寫的。

因為當(dāng)代碼比較多的時候,比如200多行,不確定會用到什么,所以用到什么導(dǎo)入什么,用到什么再調(diào)什么。

1、udp綁定端口用來接收數(shù)據(jù).py

代碼具體形式如下:

import socket

def main():

#1、創(chuàng)建套接字

udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#2、綁定一個本地信息(udp ctrl n自動補全),必須綁定自己電腦的ip port其它電腦的不行

綁定的是一個元組,用localaddr變量表示,本地ip,綁定端口,端口號大于1024

localaddr =("",7788)

udp_socket.bind(localaddr)

#3、接收數(shù)據(jù)(發(fā)送數(shù)據(jù)是套接字.sendto 接收是套接字.recvfrom(1024),

1024表示本次接收的最大字節(jié)數(shù)),并用recv_data變量接收

recv_data = udp_socket.recvfrom(1024)

#4、打印接收到的數(shù)據(jù)

print(recv_data)

#5、關(guān)閉套接字

udp_socket.close()

if __name__=="__main__":

main()

代碼完成后,終端中python3 05 綁定端口用來接收數(shù)據(jù).py 運行程序,此時由網(wǎng)絡(luò)調(diào)試助手發(fā)送過來的消息就可以在終端中收到,收到的內(nèi)容顯示情況如下:

怎么實現(xiàn)Udp接收數(shù)據(jù)

打印出來的數(shù)據(jù)即變量recv_data,是一個元組,第一個參數(shù)是發(fā)送的數(shù)據(jù),第二個參數(shù)是一個小元組,是發(fā)送方的ip和端口。

想要在終端中只顯示接收到的數(shù)據(jù),不顯示對方的ip 和端口,操作如下:

cp 05 綁定端口用來接收數(shù)據(jù).py 06解析出接收到數(shù)據(jù).py

2、解析出接收到數(shù)據(jù).py

關(guān)于注釋:

如果在一行的開頭注釋,直接用# 后面跟上一個空格 再寫注釋內(nèi)容

如果是在代碼后面注釋 代碼后面加兩個空格 再用# 跟上一個空格 再寫注釋內(nèi)容

打印代碼調(diào)整時的思路:

print(“s% : s%”,%(send_addr,recv_msg))

但send_addr是一個元組,不能直接這樣用,需要用str(send_addr)來轉(zhuǎn)換

recv_msg也不能直接用,因為發(fā)送時是用編碼編成了bite類型,收到的也是bite類型,如果直接發(fā)送過來的是字母,可以收到,但是如果發(fā)送過來是漢字,收到的是亂碼,此時需要解碼,

recv_msg.decode(“utf-8”),但是此時用windows的網(wǎng)絡(luò)調(diào)試助手發(fā)送中文過來還是亂碼,因為windows不是用utf-8編碼的,用的是gbk編碼,所以此時解碼需要用gbk,即:recv_msg.decode(“gbk”)

如果將網(wǎng)絡(luò)調(diào)試助手放到ubantu中,解碼還是要用utf-8來解

import socket

def main():

#1、創(chuàng)建套接字

udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#2、綁定一個本地信息

localaddr =("",7788)

udp_socket.bind(localaddr)

#3、接收數(shù)據(jù)

recv_data = udp_socket.recvfrom(1024)

recv_msg = recv_data[0] # 用來接收發(fā)送的內(nèi)容

send_addr = recv_data[1] # 用來接收發(fā)送方的ip和port

#4、打印接收到的數(shù)據(jù)

#print(recv_data) # 此時打印的代碼需要注釋掉,重新調(diào)整

pint("s%:s%",%(str(send_addr),recv_msg.decode("gbk")))

#5、關(guān)閉套接字

udp_socket.close()

if __name__=="__main__":

main()

**總結(jié):無錫婦科檢查醫(yī)院 http://www.87554006.com/

發(fā)送數(shù)據(jù)步驟:

1.創(chuàng)建套接字

2.發(fā)送數(shù)據(jù)

3.關(guān)閉套接字

接收數(shù)據(jù)步驟:

1.創(chuàng)建套接字

2.綁定本地的ip 端口

3.接收數(shù)據(jù)

4.打印套接字

想要在終端中循環(huán)一直接收數(shù)據(jù),操作如下:

cp 06解析出接收到數(shù)據(jù).py 07循環(huán)接收數(shù)據(jù).py

vim 07循環(huán)接收數(shù)據(jù).py

3、循環(huán)接收數(shù)據(jù).py

想要循環(huán)接收,就要用while true ,對接收和打印代碼進(jìn)行while true:

ESC 大V 上下箭頭選中,大于號向右縮進(jìn)

import socket

def main():

#1、創(chuàng)建套接字

udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#2、綁定一個本地信息

localaddr =("",7788)

udp_socket.bind(localaddr)

#3、接收數(shù)據(jù)

while True:

recv_data = udp_socket.recvfrom(1024)

recv_msg = recv_data[0] # 用來接收發(fā)送的內(nèi)容

send_addr = recv_data[1] # 用來接收發(fā)送方的ip和port

#4、打印接收到的數(shù)據(jù)

pint("s%:s%",%(str(send_addr),recv_msg.decode("gbk")))

#5、關(guān)閉套接字

udp_socket.close()

if __name__=="__main__":

main()

到此,相信大家對“怎么實現(xiàn)Udp接收數(shù)據(jù)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)頁名稱:怎么實現(xiàn)Udp接收數(shù)據(jù)
轉(zhuǎn)載來于:http://m.kartarina.com/article2/pgoooc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈域名注冊網(wǎng)站導(dǎo)航網(wǎng)站改版App開發(fā)網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
主站蜘蛛池模板: 蜜芽亚洲av无码一区二区三区| 亚洲av成人无码久久精品| 狼人无码精华AV午夜精品| 好硬~好爽~别进去~动态图, 69式真人无码视频免 | 人妻丰满熟妇av无码区不卡| 人妻丝袜中文无码av影音先锋专区 | 久久美利坚合众国AV无码| 国产网红主播无码精品 | 成人午夜亚洲精品无码网站| 在线观看成人无码中文av天堂| 久久精品无码专区免费| 国产精品无码一区二区三级| 国产精品无码制服丝袜| 韩国精品一区二区三区无码视频| 丰满熟妇乱又伦在线无码视频| V一区无码内射国产| 人禽无码视频在线观看| 亚洲成?Ⅴ人在线观看无码| 国产精品无码一二区免费| 久久久久亚洲av无码专区蜜芽| 无码人妻精品一区二区蜜桃| 亚洲AV无码精品无码麻豆| 日日摸日日碰人妻无码| 中文无码热在线视频| 亚洲AV无码一区二区乱子仑 | 日韩精品无码免费视频| 精品久久无码中文字幕| 久久人妻少妇嫩草AV无码专区| 国产成人精品无码一区二区三区| 无码日韩精品一区二区免费| 人妻少妇偷人精品无码| 国产av无码专区亚洲av果冻传媒| 亚洲国产91精品无码专区| 精品亚洲成A人无码成A在线观看| 无码人妻久久一区二区三区免费| 欧洲精品无码成人久久久| 亚洲日韩乱码中文无码蜜桃臀网站| 久久伊人中文无码| 国产成人无码精品久久二区三区| 色欲香天天综合网无码| 国产aⅴ激情无码久久久无码|