前言
互聯網的本質是什么?其實就是資訊的交換,就比如我們常用的QQ、微信等,那么如何將自己的資訊發送到其他人的電腦上呢?

那就需要借助網路模型來完成這樣的事情了,今天就帶領大家使用UDP網路模型來完成一個簡單的聊天器
點擊領取【代碼】【相關教程、資料】,或者對于本篇文章有疑問的同學可以私信我
分享內容
- python中的套接字實作
- 如何與Ubuntu建立通信
- 發送/接收訊息
環境
- windows
- Ubuntu
- python3
- pycharm
匯入模塊
import socket
socket是套接字,鏈接電腦并且接收/發送訊息的一個物件
socket有兩種型別:udp和tcp
udp比較簡單 不安全 丟包的情況 速度快
tcp比較復雜的網路模型 安全 速度慢
創建一個套接字物件
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp需要借助網路:IP協議
IP協議分為兩種:IPv4和IPv6
PC電腦采取的是IPv4,IPv6一般是移動端使用:手機
發送資料到ubuntu系統中
udp_socket.sendto(b'hello python', ('192.168.3.40', 8080))
udp_socket.close()
發送任意資料給網路條數助手
def main():
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()
回圈發送資料
def main():
# 創建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 回圈發送
while True:
send_data = input('請輸入你想要發送的資料:')
udp_socket.sendto(send_data.encode('utf-8'), ('192.168.3.40', 8080))
if send_data == "exit":
break
udp_socket.close()
回圈接受資料
系結本機資訊 告訴ubuntu我的當前地址以及埠
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
localhost_addr = ('', 6666)
udp_socket.bind(localhost_addr)
回圈接收
while True:
recv_data = udp_socket.recvfrom(1024)
# 元組解包
recv_msg, recv_addr = recv_data
print(recv_msg.decode('utf-8'), recv_addr)
將相關的功能抽離出來做成一個函式
發送訊息
def send_msg(udp_socket):
msg = input('請輸入你想要發送的訊息:')
udp_socket.sendto(msg.encode('utf-8'), ('192.168.3.40', 8080))
接收訊息
def recv_msg(udp_socket):
# 接收
msg = udp_socket.recvfrom(1024)
# 解碼
recv_msg = msg[0].decode('utf-8')
print(recv_msg)
發送 / 接收 功能
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind(('', 6666))
while True:
op_num = input('請輸入要操作的功能序號 [1.發送訊息 2.接收訊息]:' )
# 根據用戶輸入的數字去呼叫相關的功能
if op_num == "1":
send_msg(udp_socket)
elif op_num == "2":
recv_msg(udp_socket)
else:
print('輸入有誤, 請重新輸入...')
啟動
if __name__ == '__main__':
main()
最后運行代碼
發送訊息


接收訊息



轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/356951.html
標籤:其他
上一篇:TCP四次揮手詳解
