Python制作簡易聊天器搭建UDP網(wǎng)絡通信模型_第1頁
Python制作簡易聊天器搭建UDP網(wǎng)絡通信模型_第2頁
Python制作簡易聊天器搭建UDP網(wǎng)絡通信模型_第3頁
Python制作簡易聊天器搭建UDP網(wǎng)絡通信模型_第4頁
Python制作簡易聊天器搭建UDP網(wǎng)絡通信模型_第5頁
全文預覽已結(jié)束

下載本文檔

版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論