成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么實(shí)現(xiàn)Udp接收數(shù)據(jù)-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供古縣網(wǎng)站建設(shè)、古縣做網(wǎng)站、古縣網(wǎng)站設(shè)計(jì)、古縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、古縣企業(yè)網(wǎng)站模板建站服務(wù),10多年古縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

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

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

  接下來(lái)寫程序,終端中:

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

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

  main()

  然后再def main():

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

  用注釋來(lái)搭建流程

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

  #2、綁定一個(gè)本地信息

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

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

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

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

  因?yàn)楫?dāng)代碼比較多的時(shí)候,比如200多行,不確定會(huì)用到什么,所以用到什么導(dǎo)入什么,用到什么再調(diào)什么。

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

  代碼具體形式如下:

  import socket

  def main():

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

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

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

  綁定的是一個(gè)元組,用localaddr變量表示,本地ip,綁定端口,端口號(hào)大于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 綁定端口用來(lái)接收數(shù)據(jù).py 運(yùn)行程序,此時(shí)由網(wǎng)絡(luò)調(diào)試助手發(fā)送過(guò)來(lái)的消息就可以在終端中收到,收到的內(nèi)容顯示情況如下:

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

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

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

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

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

  關(guān)于注釋:

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

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

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

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

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

  recv_msg也不能直接用,因?yàn)榘l(fā)送時(shí)是用編碼編成了bite類型,收到的也是bite類型,如果直接發(fā)送過(guò)來(lái)的是字母,可以收到,但是如果發(fā)送過(guò)來(lái)是漢字,收到的是亂碼,此時(shí)需要解碼,

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

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

  import socket

  def main():

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

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

  #2、綁定一個(gè)本地信息

  localaddr =("",7788)

  udp_socket.bind(localaddr)

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

  recv_data = udp_socket.recvfrom(1024)

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

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

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

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

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

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

  udp_socket.close()

  if __name__=="__main__":

  main()

  **總結(jié):無(wú)錫婦科檢查醫(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 ,對(duì)接收和打印代碼進(jìn)行while true:

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

  import socket

  def main():

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

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

  #2、綁定一個(gè)本地信息

  localaddr =("",7788)

  udp_socket.bind(localaddr)

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

  while True:

  recv_data = udp_socket.recvfrom(1024)

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

  send_addr = recv_data[1] # 用來(lái)接收發(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()

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

文章名稱:怎么實(shí)現(xiàn)Udp接收數(shù)據(jù)-創(chuàng)新互聯(lián)
URL鏈接:http://jinyejixie.com/article20/deddco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、微信公眾號(hào)、動(dòng)態(tài)網(wǎng)站手機(jī)網(wǎng)站建設(shè)、用戶體驗(yàn)網(wǎng)站策劃

廣告

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

營(yíng)銷型網(wǎng)站建設(shè)
察隅县| 建平县| 和硕县| 永登县| 贵德县| 定安县| 梧州市| 兴仁县| 英山县| 九江县| 文成县| 定安县| 霞浦县| 高碑店市| 辽宁省| 尚义县| 区。| 南召县| 图们市| 扎赉特旗| 临夏市| 汉寿县| 慈溪市| 垫江县| 阿拉尔市| 崇义县| 铜梁县| 堆龙德庆县| 台北县| 阜新市| 象山县| 万安县| 商水县| 泸州市| 南雄市| 久治县| 中宁县| 通江县| 山阳县| 新乐市| 咸阳市|