下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第Python制作簡易聊天器,搭建UDP網(wǎng)絡通信模型目錄1.導入模塊2.創(chuàng)建一個套接字對象3.發(fā)送數(shù)據(jù)到ubuntu系統(tǒng)中4.發(fā)送任意數(shù)據(jù)給網(wǎng)絡條數(shù)助手5.循環(huán)發(fā)送數(shù)據(jù)6.循環(huán)接受數(shù)據(jù)循環(huán)接收將相關的功能抽離出來做成一個函數(shù)7.啟動最后運行代碼前言:
互聯(lián)網(wǎng)的本質(zhì)是什么?其實就是信息的交換。就比如我們常用的QQ、微信等。那么如何將自己的信息發(fā)送到其他人的電腦上呢?
那就需要借助網(wǎng)絡模型來完成這樣的事情了。今天就帶領大家使用UDP網(wǎng)絡模型來完成一個簡單的聊天器
分享內(nèi)容:
python中的套接字實現(xiàn)如何與Ubuntu建立通信發(fā)送/接收消息
環(huán)境:
windowsUbuntupython3pycharm
1.導入模塊
importsocket
socket是套接字,鏈接電腦并且接收/發(fā)送消息的一個對象
socket有兩種類型:udp和tcp
udp比較簡單不安全丟包的情況速度快tcp比較復雜的網(wǎng)絡模型安全速度慢
2.創(chuàng)建一個套接字對象
defmain():
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp需要借助網(wǎng)絡:IP協(xié)議
IP協(xié)議分為兩種:IPv4和IPv6
PC電腦采取的是IPv4,IPv6一般是移動端使用:手機
3.發(fā)送數(shù)據(jù)到ubuntu系統(tǒng)中
udp_socket.sendto(b'hellopython',('192.168.3.40',8080))
udp_socket.close()
4.發(fā)送任意數(shù)據(jù)給網(wǎng)絡條數(shù)助手
defmain():
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
send_data=input('請輸入任意字符:')
udp_socket.sendto(send_data.encode('utf-8'),('192.168.3.40',8080))
udp_socket.close()
5.循環(huán)發(fā)送數(shù)據(jù)
defmain():
#創(chuàng)建套接字
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#循環(huán)發(fā)送
whileTrue:
send_data=input('請輸入你想要發(fā)送的數(shù)據(jù):')
udp_socket.sendto(send_data.encode('utf-8'),('192.168.3.40',8080))
ifsend_data=="exit":
break
udp_socket.close()
6.循環(huán)接受數(shù)據(jù)
綁定本機信息告訴ubuntu我的當前地址以及端口
defmain():
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
localhost_addr=('',6666)
udp_socket.bind(localhost_addr)
循環(huán)接收
whileTrue:
recv_data=udp_socket.recvfrom(1024)
#元組解包
recv_msg,recv_addr=recv_data
print(recv_msg.decode('utf-8'),recv_addr)
將相關的功能抽離出來做成一個函數(shù)
發(fā)送消息:
defsend_msg(udp_socket):
msg=input('請輸入你想要發(fā)送的消息:')
udp_socket.sendto(msg.encode('utf-8'),('192.168.3.40',8080))
接收消息:
defrecv_msg(udp_socket):
#接收
msg=udp_socket.recvfrom(1024)
#解碼
recv_msg=msg[0].decode('utf-8')
print(recv_msg)
發(fā)送/接收功能:
defmain():
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp_socket.bind(('',6666))
whileTrue:
op_num=input('請輸入要操作的功能序號[1.發(fā)送消息2.接收消息]:')
#根據(jù)用戶輸入的數(shù)字去調(diào)用相關的功能
ifop_num=="1":
send_msg(udp_socket)
elifop_num=="2":
recv_msg(udp_socket)
else:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市嘉定區(qū)嘉一中2026屆高二上生物期末監(jiān)測試題含解析
- 校慶活動策劃方案國慶(3篇)
- 獸藥銷售培訓課件模板
- 科技項目評審現(xiàn)場管理制度(3篇)
- 獸藥監(jiān)管培訓課件班講話
- 進口核酸檢測準入管理制度(3篇)
- 餐飲企業(yè)提案管理制度(3篇)
- 《GA 1373-2017警帽 禮儀卷檐帽》專題研究報告深度
- 《GA 735-2007警服材料 針織羅紋布》專題研究報告
- 2026年及未來5年市場數(shù)據(jù)中國供應鏈物流行業(yè)市場全景監(jiān)測及投資戰(zhàn)略咨詢報告
- 腳手架國際化標準下的發(fā)展趨勢
- 購銷合同范本(塘渣)8篇
- 屋面光伏設計合同協(xié)議
- 生鮮業(yè)務采購合同協(xié)議
- GB/T 4340.2-2025金屬材料維氏硬度試驗第2部分:硬度計的檢驗與校準
- 銷售合同評審管理制度
- 資產(chǎn)評估員工管理制度
- 泳池突發(fā)安全事故應急預案
- 2025開封輔警考試題庫
- 湖北省武漢市漢陽區(qū)2024-2025學年上學期元調(diào)九年級物理試題(含標答)
- DB37-T 5316-2025《外墻外保溫工程質(zhì)量鑒定技術(shù)規(guī)程》
評論
0/150
提交評論