91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

網絡編程之 Udp發送數據

發布時間:2020-07-06 03:58:48 來源:網絡 閱讀:271 作者:ckllf 欄目:編程語言

  demo:編寫程序

  linux中寫程序不一定用pycharm

  用pycharm或者vim或者sublime編輯器

  Sublime編輯時:保存到一定次數是會提醒是否購買;右下角按鈕可以選擇語言;鼠標移動到上方會看到菜單欄,“首選項”中有配色方案-改完之后菜單欄如果不見了,重新開一下;支持拖放文件夾到編輯器左側;

  Sublime中

  Sublime中保存:CTRL+S

  按住Ctrl和加號:放大字體

  **

  Udp發送數據

  1. 代碼大概結構如下:

  import socket

  def main():

  #創建一個udp套接字

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

  #可以使用套接字收發數據

  #關閉套接字

  udp_socket.close()

  if__name__=”__main__”:

  main()

  寫完程序后運行,與pycharm中不同:

  打開終端,cd到py文件所在的文件夾,vim 文件名.py python3 文件名.py

  如果用python2運行,Python 文件名.py 現在都用python3

  

網絡編程之 Udp發送數據


  運行測試完成后,接下來用vim打開文件 用vim編輯:

  用sublime編輯的用 vim打開,縮進的有點多,

  vim縮進命令如下:

  ESC 進入命令模式,大V, 上下鍵 選中一片, shift+< 向左縮進,向右縮進shift+>

  因為文件中沒有任何顯示運行的命令,所以終端中無法看到程序是否能正常運行,回到文件,增加一個測試命令:print(——run——)

  小程序用終端和vim 大工程用pycharm

  2. 完成發送功能:

  在編輯模式下,敲完udp 然后Ctrl n會出現自動補全,上下鍵選彈出的內容,選中后回車

  import socket

  def main():

  #創建一個udp套接字

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

  #可以使用套接字收發數據

  #兩個參數,第一個是內容,第二個是一個元組(ip,port),

  #port是一個數字,不要用雙引號,ip要用雙引號擴起來。

  #udp_socket.sendto(“hahahah”,對方的ip和port)

  # 此時,用這個電腦來發給另外一臺電腦來驗證程序,

  # 比如自己的ubantu發給自己的windows,但是windows中需要有個程序來接收,

  #利用課程發的網絡調試助手用來接收數據。

  udp_socket.sendto(“hahahah”,(“192.168.33.53”,8080))

  #關閉套接字

  udp_socket.close()

  if__name__=”__main__”:

  main()

  然后在終端中python3 文件名.py運行

  此時報錯了,提示第9行是字符串“hahaha”,解決方案,前面加b,就不是字符串了b “hahaha”

  再次運行時仍報錯,顯示網絡不錯,因為windows的ip是192.163.33.53,ubantu的ip是172.16.7.137,兩個ip前三個字段不同,不在同一個網絡里。

  此時在ubantu終端中輸入命令:ping 192.168.33.53,如果ping能通,說明可以通信,否則不能通信。如果ping不成功,改成橋接。菜單欄中“虛擬機”-“設置”-“網絡適配器”-“自動檢測”點終端上門的按鈕,選擇“橋接模式”,然后回到終端ifconfig

  如果網絡還不通,在ubantu終端輸入命令:sudo dhclient 等待分配IP 如果是橋接模式,一般分配的ip會與windows在同一個網絡號。再ping一下Windows的ip,如果出現消耗了多少時間,說明此時可以通信了。

  如果測試中出現問題,是因為電腦中裝了vmware,導致一臺電腦中有多個ip,此時將VMware的網絡斷開就可以通信了。

  注意:udp_socket.sendto(b“hahahah”,(“192.168.33.53”,8080)) 中寫ip時,ip要寫Windows的,不管Windows中的網絡調試助手中顯示的ip是多少,要通過Windows開始中cmd命令,ipconfig出來的ip才是真正要接收數據的ip

  Ubantu終端中: Python3 :進入交互模式 exit( )退出交互,用來驗證某些知識點 Python3

  文件名.py:運行這個文件 ipython3也是交互模式,比python3高端,能自動補全,支持清屏,ls,建議使用ipython3

  Ubantu終端中:復制文件命令,cp 01-socket的基本使用.py 02-發送任意數據給Windows中的調試助手.py

  意思就是把01文件復制一份,重命名為02

  3. 通過鍵盤獲取發送內容來發送任意信息

  然后vim 02-XXXX打開之后的程序與剛才一模一樣,代碼如下:

  import socket

  def main():

  #創建一個udp套接字

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

  #從鍵盤獲取數據,就可以實現發送任意數據了,并用send_data變量存儲,

  send_data = input(“請輸入你要發的信息:”)

  #可以使用套接字收發數據,此處就不能在變量前加b了,把這句代碼變成注釋,yy p復制這句代碼,重新編輯

  #udp_socket.sendto(b“hahahah”,(“192.168.33.53”,8080))

  #input獲取的東西是以字符串存儲的,不能直接把b“hahahah”換成send_data,用encode(“utf-8”)方法

  udp_socket.sendto(send_data.encode(“utf-8”),(“192.168.33.53”,8080))

  #關閉套接字

  udp_socket.close()

  if__name__=”__main__”:

  main()無錫婦科檢查醫院 http://www.87554006.com/

  **4. 循環發送數據

  以上代碼可以完成發送任意信息,但是如果想循環發,需要while true,

  終端中: cp一份02文件,cp 02xx.py 03循環發送數據.py vim 03…打開,ESC V 選中一段代碼,shift >

  整體向右縮進

  保存并退出vim編輯器,按esc進入命令模式后,輸入:wq,一定 要輸入冒號

  import socket

  def main():

  #創建一個udp套接字

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

  while true:

  #從鍵盤獲取數據,就可以實現發送任意數據了,并用send_data變量存儲,

  send_data = input(“請輸入你要發的信息:”)

  udp_socket.sendto(send_data.encode(“utf-8”),(“192.168.33.53”,8080))

  #關閉套接字

  udp_socket.close()

  if__name__=”__main__”:

  main()

  終端中:

  運行程序進行測試,如果要結束程序,ctrl c

  **5 帶有退出功能的循環發送

  cp 03 04帶有退出功能的循環發送.py

  import socket

  def main():

  #創建一個udp套接字

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

  while true:

  #從鍵盤獲取數據,就可以實現發送任意數據了,并用send_data變量存儲,

  send_data = input(“請輸入你要發的信息:”)

  #如果輸入的數據是exit,那就退出程序,break是直接退while,continue是退出這一次,后面的繼續執行,然后再while true

  If send_data ==”exit”:

  break

  udp_socket.sendto(send_data.encode(“utf-8”),(“192.168.33.53”,8080))

  #關閉套接字

  udp_socket.close()

  if__name__=”__main__”:

  main()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 丹寨县| 吴川市| 鱼台县| 迁安市| 九龙城区| 特克斯县| 西吉县| 兴宁市| 潜江市| 静安区| 曲麻莱县| 竹溪县| 大石桥市| 班戈县| 句容市| 张家界市| 奈曼旗| 临朐县| 尼勒克县| 汨罗市| 富民县| 剑河县| 萨嘎县| 涪陵区| 西昌市| 新蔡县| 鹤峰县| 磐石市| 晋州市| 礼泉县| 平舆县| 五大连池市| 新河县| 广元市| 广德县| 军事| 威信县| 嘉兴市| 南和县| 莱西市|