91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python修煉——UDP、TCP

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-25 18:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今日思維導(dǎo)圖

每日代碼

udp聊天器

import socket

"""

這段代碼可以實(shí)現(xiàn)循環(huán)進(jìn)行收發(fā)消息,但是同一時(shí)間只能進(jìn)行一個(gè)動(dòng)作

"""

def send_msg(udp_socket):

"""發(fā)送數(shù)據(jù)"""

# 發(fā)送數(shù)據(jù)

client_ip = input("請(qǐng)輸入對(duì)方ip: ")

client_port = int(input("請(qǐng)輸入對(duì)方端口:"))

send_data = input("請(qǐng)輸入要發(fā)送的內(nèi)容:")

# 發(fā)送數(shù)據(jù),使用encode進(jìn)行編碼,ip和端口要放在元組中

udp_socket.sendto(send_data.encode("utf-8"), (client_ip, client_port))

def recv_msg(udp_socket):

"""接收數(shù)據(jù)"""

# 接收數(shù)據(jù) ,需要指定要接收的字節(jié),1024就是 1KB

recv_data = udp_socket.recvfrom(1024)

# recvfrom返回的數(shù)據(jù)時(shí)一個(gè)元組,第一個(gè)元素是地址,第二個(gè)元素是接收到的消息

# 使用decode 進(jìn)行解碼

print("%s: %s" % (str(recv_data[1]), recv_data[0].decode("utf-8")))

def main():

# 創(chuàng)建套接字

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

# 綁定本地信息,可以知道ip和端口

udp_socket.bind(("", 6666))

while True:

print("---udp聊天器---")

print("1. 發(fā)送數(shù)據(jù)")

print("2. 接收數(shù)據(jù)")

print("0. 退出")

op = input("請(qǐng)輸入要進(jìn)行的操作")

if op == "1":

# 調(diào)用發(fā)送數(shù)據(jù)的函數(shù)

send_msg(udp_socket)

elif op == "2":

# 調(diào)用接收數(shù)據(jù)的函數(shù)

recv_msg(udp_socket)

elif op == "0":

break

else:

print("輸入有誤,請(qǐng)重新輸入")

udp_socket.close()

if __name__ == "__main__":

main()

tcp服務(wù)器代碼

import socket

"""tcp服務(wù)器"""

def main():

# 創(chuàng)建套接字, tcp的參數(shù)時(shí)SOCK_STREAM

tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 綁定本地地址, 本地地址和端口可能需要重新指定

tcp_socket.bind(("", 6666))

# 由主動(dòng)變成被動(dòng)接聽(tīng), listen方法可以指定同時(shí)連接的客戶(hù)端

tcp_socket.listen(128)

while True:

# 循環(huán)接聽(tīng)客戶(hù)

# 等待客戶(hù)端連接, 當(dāng)有客戶(hù)連接,accept方法返回一個(gè)元組

# 元組第一個(gè)元素是一個(gè)新的套接字,只針對(duì)于當(dāng)前連接的這個(gè)客戶(hù)端;第二個(gè)元素是客戶(hù)端地址

colient_socket, colient_addr = tcp_socket.a(chǎn)ccept()

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

print(colient_addr)

while True:

# 循環(huán)和同一個(gè)客戶(hù)端聯(lián)系

colient_data = colient_socket.recv(1024)

print(colient_data.decode("utf-8"))

if colient_data:

# 進(jìn)行判斷,只有客戶(hù)端還在發(fā)送數(shù)據(jù),就返回一個(gè)數(shù)據(jù)給客戶(hù)端

# 發(fā)揮一部分?jǐn)?shù)據(jù)給客戶(hù)端

colient_socket.send("嘿嘿嘿".encode("utf-8"))

else:

# 沒(méi)有數(shù)據(jù)就

break

# 關(guān)閉套接字

colient_socket.close()

tcp_socket.close()

if __name__ == "__main__":

main()

tcp客戶(hù)端代碼

import socket

"""tcp客戶(hù)端"""

def main():

# 創(chuàng)建套接字

tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 鏈接服務(wù)器, tcp客戶(hù)端需要先鏈接服務(wù)器

tcp_socket.connect(("192.168.xxx.xxx", 6666))

while True:

# 循環(huán)和服務(wù)器聯(lián)系

# 發(fā)送數(shù)據(jù)

print("輸入【exit】退出鏈接")

send_data = input("請(qǐng)輸入要發(fā)送的數(shù)據(jù):")

if send_data == "exit":

break

tcp_socket.send(send_data.encode("utf-8"))

# 接收服務(wù)器返回的數(shù)據(jù)

server_data = tcp_socket.recv(1024)

print(server_data.decode("utf-8"))

# 關(guān)閉套接字

tcp_socket.close()

if __name__ == "__main__":

main()

在 tcp 這里碰見(jiàn)了一個(gè)奇怪的BUG

服務(wù)器和客戶(hù)端運(yùn)行起來(lái)后,輸入正常數(shù)據(jù)沒(méi)有問(wèn)題,當(dāng)只輸入一個(gè)回車(chē)時(shí),程序不發(fā)送數(shù)據(jù)也不接受數(shù)據(jù)只能強(qiáng)行接受,問(wèn)了下,沒(méi)有解決,這玩意好像是因?yàn)?a target="_blank">操作系統(tǒng)底層的原因, 后面再研究研究。

今天內(nèi)容需要記憶和理解都比較多,不過(guò)還算可以接受。

最近在試著使用 Typora 練習(xí) Markdown 寫(xiě)作方式,不是很熟練,寫(xiě)出來(lái)有點(diǎn)亂,慢慢練習(xí)熟練了再使用這種方式吧。

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    35424
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90082
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    零知IDE——基于STM32與W5500的UDP通信實(shí)現(xiàn)溫濕度監(jiān)控

    LED updateStatusLED(); delay(10); } 系統(tǒng)流程圖 UDP傳輸協(xié)議原理 UDP用戶(hù)數(shù)據(jù)報(bào)協(xié)議發(fā)送數(shù)據(jù)前不需要建立連接,直接發(fā)送;協(xié)議頭僅8字節(jié),相比TCP的20字節(jié)更
    發(fā)表于 02-28 16:08

    零知IDE——基于STM32與W5500的UDP通信實(shí)現(xiàn)溫濕度監(jiān)控

    本文詳細(xì)介紹了一個(gè)基于零知增強(qiáng)板(STM32F407VET6)和W5500以太網(wǎng)模塊的UDP通信溫濕度監(jiān)控系統(tǒng)。系統(tǒng)通過(guò)DHT11傳感器采集數(shù)據(jù),通過(guò)W5500實(shí)現(xiàn)UDP通信,支持遠(yuǎn)程LED控制
    的頭像 發(fā)表于 02-28 15:26 ?1514次閱讀
    零知IDE——基于STM32與W5500的<b class='flag-5'>UDP</b>通信實(shí)現(xiàn)溫濕度監(jiān)控

    RK3562 單板機(jī) Linux 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)手冊(cè):LED/CAN/TCP/UART 案例與 Python 開(kāi)發(fā)(二)

    本文為創(chuàng)龍科技RK3562 單板機(jī)應(yīng)用開(kāi)發(fā)指南,核心包含交叉編譯工具鏈部署、GDB 遠(yuǎn)程調(diào)試,以及 LED、CAN、TCP/UDP、MQTT 等實(shí)戰(zhàn)案例。文檔支持 C/C++ 與 Python 雙語(yǔ)
    的頭像 發(fā)表于 02-25 11:35 ?445次閱讀
    RK3562 單板機(jī) Linux 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)手冊(cè):LED/CAN/<b class='flag-5'>TCP</b>/UART 案例與 <b class='flag-5'>Python</b> 開(kāi)發(fā)(二)

    工業(yè)級(jí)4G路由器:TCP/IP與UDP協(xié)議,解鎖工業(yè)物聯(lián)網(wǎng)高效傳輸新范式

    /以太網(wǎng)能力,正重新定義工業(yè)數(shù)據(jù)傳輸?shù)倪吔?。其核心?yōu)勢(shì),在于對(duì)TCP/IP與UDP協(xié)議的深度適配,為不同場(chǎng)景提供精準(zhǔn)的通信解決方案。 ?? ?TCP/IP協(xié)議:可靠傳輸?shù)墓I(yè)基石? TCP
    的頭像 發(fā)表于 01-19 18:25 ?204次閱讀
    工業(yè)級(jí)4G路由器:<b class='flag-5'>TCP</b>/IP與<b class='flag-5'>UDP</b>協(xié)議,解鎖工業(yè)物聯(lián)網(wǎng)高效傳輸新范式

    DR1平臺(tái)Linux應(yīng)用開(kāi)發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)

    流程,以及 LED、按鍵、CAN、TCP/UDP、串口等常用開(kāi)發(fā)案例,同時(shí)覆蓋 Python 腳本開(kāi)發(fā)與 MQTT 消息發(fā)布 / 訂閱實(shí)戰(zhàn)。文檔基于 Ubuntu22.04
    的頭像 發(fā)表于 01-05 16:48 ?4586次閱讀
    DR1平臺(tái)Linux應(yīng)用開(kāi)發(fā)指南:含GDB調(diào)試、<b class='flag-5'>Python</b>及MQTT實(shí)戰(zhàn)

    TCPUDP的區(qū)別

    首先概括一下基本的區(qū)別: TCP是一個(gè)面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。 而UDP是一個(gè)面向無(wú)連接的傳輸層協(xié)議。(就這么簡(jiǎn)單,其它TCP的特性也就沒(méi)有了)。 具體來(lái)分析,和 U
    發(fā)表于 12-09 07:24

    TCP/UDP 三模式!遠(yuǎn)程監(jiān)控以太網(wǎng)溫濕度傳感器,響應(yīng)快至 1ms

    :支持 TCP Server/Client、UDP 三種工作模式,可靈活對(duì)接不同網(wǎng)絡(luò)架構(gòu) ——TCP Server 模式適合中心服
    的頭像 發(fā)表于 12-04 15:04 ?863次閱讀
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b> 三模式!遠(yuǎn)程監(jiān)控以太網(wǎng)溫濕度傳感器,響應(yīng)快至 1ms

    請(qǐng)問(wèn)TCPUDP 可以使用同一個(gè)端口嗎?

    TCPUDP 可以使用同一個(gè)端口嗎?
    發(fā)表于 12-03 08:01

    以太網(wǎng)通訊在FPGA上的實(shí)現(xiàn)

    ,UDP/TCP層即傳輸層這三種層次。 MAC層主要包括前導(dǎo)碼、幀起始界定符、目的MAC地址、源MAC地址、長(zhǎng)度/類(lèi)型、要傳輸?shù)臄?shù)據(jù)和幀校驗(yàn)序列,具體內(nèi)容如下圖所示: IP協(xié)議是TCP/IP
    發(fā)表于 10-30 07:45

    第二十五章 W55MH32 TCP_Server_Multi_Socket示例

    、數(shù)據(jù)交互及連接關(guān)閉的完整過(guò)程。文章詳細(xì)介紹了 TCP?協(xié)議的概念、特點(diǎn)、與 UDP?的區(qū)別、應(yīng)用場(chǎng)景、數(shù)據(jù)交互流程、ACK?機(jī)制、重傳機(jī)制和 Keepalive?機(jī)制,幫助讀者理解其在可靠數(shù)據(jù)傳輸中的實(shí)際應(yīng)用價(jià)值。
    的頭像 發(fā)表于 07-24 16:10 ?1138次閱讀
    第二十五章 W55MH32 <b class='flag-5'>TCP</b>_Server_Multi_Socket示例

    第二十四章 W55MH32TCP_Client_Multi_Socket示例

    及處理連接關(guān)閉的完整過(guò)程。文章詳細(xì)介紹了 TCP?協(xié)議的概念、特點(diǎn)、與 UDP?的區(qū)別、應(yīng)用場(chǎng)景、數(shù)據(jù)交互流程、ACK?機(jī)制、重傳機(jī)制和 Keepalive?機(jī)制,幫助讀者理解其在可靠數(shù)據(jù)傳輸中的實(shí)際應(yīng)用價(jià)值。
    的頭像 發(fā)表于 07-24 16:08 ?1010次閱讀
    第二十四章 W55MH32<b class='flag-5'>TCP</b>_Client_Multi_Socket示例

    第五章 W55MH32 UDP示例

    本文介紹了在 W55MH32?芯片上實(shí)現(xiàn) UDP?通信及數(shù)據(jù)回環(huán)測(cè)試的方法。闡述了 UDP?協(xié)議的概念、特點(diǎn)、應(yīng)用場(chǎng)景、報(bào)文傳輸流程和報(bào)文結(jié)構(gòu),展示了實(shí)現(xiàn)過(guò)程,借助網(wǎng)絡(luò)調(diào)試工具完成測(cè)試。
    的頭像 發(fā)表于 07-24 09:13 ?1121次閱讀
    第五章 W55MH32 <b class='flag-5'>UDP</b>示例

    第三章 W55MH32 TCP Client示例

    本文介紹在 W55MH32?芯片上實(shí)現(xiàn) TCP?客戶(hù)端模式進(jìn)行數(shù)據(jù)回環(huán)測(cè)試的方法。闡述 TCP?協(xié)議概念、特點(diǎn)、與 UDP?區(qū)別、應(yīng)用場(chǎng)景及相關(guān)機(jī)制。展示實(shí)現(xiàn)過(guò)程,包括開(kāi)啟 Keepalive?功能,在主循環(huán)運(yùn)行測(cè)試程序。燒錄例
    的頭像 發(fā)表于 07-24 09:06 ?1143次閱讀
    第三章 W55MH32 <b class='flag-5'>TCP</b> Client示例

    什么是Modbus TCP協(xié)議

    Modbus TCP是一種基于TCP/IP協(xié)議的Modbus通信協(xié)議,用于在客戶(hù)機(jī)和服務(wù)器之間進(jìn)行數(shù)據(jù)通信。它常用于工業(yè)自動(dòng)化控制、電力監(jiān)控與管理、溫濕度監(jiān)測(cè)等領(lǐng)域。Modbus TCP協(xié)議使用標(biāo)準(zhǔn)
    的頭像 發(fā)表于 07-23 17:18 ?4340次閱讀
    什么是Modbus <b class='flag-5'>TCP</b>協(xié)議

    TCP攻擊是什么?有什么防護(hù)方式?

    隨著網(wǎng)絡(luò)的高速發(fā)展,越來(lái)越多的企業(yè)都將業(yè)務(wù)部署在線下機(jī)房或者云上。隨之而來(lái)的就是各種各樣的網(wǎng)絡(luò)攻擊,如DDoS攻擊、CC攻擊、TCP攻擊等,這些攻擊對(duì)業(yè)務(wù)的影響也是很大。市面上有很多安全廠商都有研發(fā)
    的頭像 發(fā)表于 06-12 17:33 ?1026次閱讀