一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python修煉——UDP、TCP

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-25 18:00 ? 次閱讀

今日思維導圖

每日代碼

udp聊天器

import socket

"""

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

"""

def send_msg(udp_socket):

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

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

client_ip = input("請輸入對方ip: ")

client_port = int(input("請輸入對方端口:"))

send_data = input("請輸入要發(fā)送的內容:")

# 發(fā)送數(shù)據(jù),使用encode進行編碼,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ù)時一個元組,第一個元素是地址,第二個元素是接收到的消息

# 使用decode 進行解碼

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("請輸入要進行的操作")

if op == "1":

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

send_msg(udp_socket)

elif op == "2":

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

recv_msg(udp_socket)

elif op == "0":

break

else:

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

udp_socket.close()

if __name__ == "__main__":

main()

tcp服務器代碼

import socket

"""tcp服務器"""

def main():

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

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

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

tcp_socket.bind(("", 6666))

# 由主動變成被動接聽, listen方法可以指定同時連接的客戶端

tcp_socket.listen(128)

while True:

# 循環(huán)接聽客戶

# 等待客戶端連接, 當有客戶連接,accept方法返回一個元組

# 元組第一個元素是一個新的套接字,只針對于當前連接的這個客戶端;第二個元素是客戶端地址

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

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

print(colient_addr)

while True:

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

colient_data = colient_socket.recv(1024)

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

if colient_data:

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

# 發(fā)揮一部分數(shù)據(jù)給客戶端

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

else:

# 沒有數(shù)據(jù)就

break

# 關閉套接字

colient_socket.close()

tcp_socket.close()

if __name__ == "__main__":

main()

tcp客戶端代碼

import socket

"""tcp客戶端"""

def main():

# 創(chuàng)建套接字

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

# 鏈接服務器, tcp客戶端需要先鏈接服務器

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

while True:

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

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

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

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

if send_data == "exit":

break

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

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

server_data = tcp_socket.recv(1024)

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

# 關閉套接字

tcp_socket.close()

if __name__ == "__main__":

main()

在 tcp 這里碰見了一個奇怪的BUG

服務器和客戶端運行起來后,輸入正常數(shù)據(jù)沒有問題,當只輸入一個回車時,程序不發(fā)送數(shù)據(jù)也不接受數(shù)據(jù)只能強行接受,問了下,沒有解決,這玩意好像是因為操作系統(tǒng)底層的原因, 后面再研究研究。

今天內容需要記憶和理解都比較多,不過還算可以接受。

最近在試著使用 Typora 練習 Markdown 寫作方式,不是很熟練,寫出來有點亂,慢慢練習熟練了再使用這種方式吧。

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

    關注

    0

    文章

    330

    瀏覽量

    34388
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85900
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    TCP協(xié)議與UDP協(xié)議的區(qū)別

    。 UDP(用戶數(shù)據(jù)報協(xié)議) : 無連接 :UDP不建立連接,數(shù)據(jù)可以直接發(fā)送,不需要任何握手過程。 不可靠性 :UDP不保證數(shù)據(jù)的可靠傳輸,數(shù)據(jù)包可能會丟失,不會重傳。 2. 數(shù)據(jù)傳輸 TC
    的頭像 發(fā)表于 01-22 09:44 ?532次閱讀

    Web端TCP/UDP測試工具!小白必學~

    Web端TCP/UDP測試工具,方便大家進行各種基于TCP和TDP的模擬測試。該測試工具不僅支持TCPUDP測試,還支持SSL,使用極為便
    的頭像 發(fā)表于 01-08 18:17 ?906次閱讀
    Web端<b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>測試工具!小白必學~

    TCP三次握手與UDP的區(qū)別

    在計算機網(wǎng)絡中,數(shù)據(jù)傳輸?shù)目煽啃院托适莾蓚€關鍵因素。為了滿足不同的應用需求,設計者們開發(fā)了多種傳輸層協(xié)議。其中,TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)是最常用的兩種。它們在數(shù)據(jù)傳輸機制
    的頭像 發(fā)表于 01-03 17:35 ?691次閱讀

    ID讀卡器TCP協(xié)議QT小程序開發(fā)

    、基本概念 TCP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。它工作在OSI模型的第四層,即傳輸層,為用戶提供可靠的、有序的和無差錯的數(shù)據(jù)傳輸服務。TCP協(xié)議與UDP協(xié)議是傳輸層的兩大主要協(xié)議,但兩者在設計上有明顯的不
    的頭像 發(fā)表于 12-31 10:19 ?456次閱讀
    ID讀卡器<b class='flag-5'>TCP</b>協(xié)議QT小程序開發(fā)

    一文了解Android UDP通信

    協(xié)議。發(fā)送方的UDP對應用程序交下來的報文,在添加首部后就向下交付IP層。UDP對應用層交下來的報文,既不合并,也不拆分,而是保留這些報文的邊界。 首部開銷?。?UDP的首部開銷只有8個字節(jié),比
    發(fā)表于 12-30 10:56

    如何在Python中使用socket

    UDP。 2. 創(chuàng)建Socket 在Python中,我們使用 socket 模塊來創(chuàng)建socket。以下是創(chuàng)建一個TCP socket的示例代碼: import socket # 創(chuàng)建一個socket
    的頭像 發(fā)表于 11-01 16:10 ?548次閱讀

    TCP&UDP調試工具

    TCP&UDP調試工具
    發(fā)表于 10-30 10:41 ?3次下載

    CMW500進行LTE TCPUDP測試方法

    本文主要介紹TCPUDP測試方法,包含上行速率、下行速率、和并發(fā)速率測試,其中:上行業(yè)務測試時,智能待測設備要先打開儀表端Iperf后,再打開待測設備端Iperf;非智能待測設備要先打開儀表端
    的頭像 發(fā)表于 09-12 08:09 ?3352次閱讀
    CMW500進行LTE <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>測試方法

    功能強大的網(wǎng)絡通訊工具,支持各類TCP、UDP、HTTP的通訊協(xié)議

    功能強大的網(wǎng)絡通訊工具,支持各類TCPUDP、HTTP的通訊協(xié)議,簡單方便,包含歷史記憶功能,體積小,服務器調試最合適
    發(fā)表于 09-05 11:51 ?0次下載

    深度解析TCPUDP協(xié)議

    計算機與網(wǎng)絡設備要相互通信,它們必須遵循一種共同的方法或標準。對于不同硬件平臺和操作系統(tǒng)之間的交互而言,這種共同遵循的規(guī)范尤為關鍵。我們將這一系列指導通信過程的規(guī)則稱為“協(xié)議”。TCPUDP
    的頭像 發(fā)表于 09-02 14:53 ?637次閱讀
    深度解析<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>協(xié)議

    tcpudp的區(qū)別和聯(lián)系

    一、引言 在現(xiàn)代網(wǎng)絡通信中,數(shù)據(jù)傳輸是至關重要的。為了確保數(shù)據(jù)的可靠傳輸,網(wǎng)絡協(xié)議發(fā)揮著關鍵作用。傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)是兩種常用的網(wǎng)絡協(xié)議,它們在許多應用場景中發(fā)
    的頭像 發(fā)表于 08-16 11:06 ?869次閱讀

    使用sep_now的同時能不能使用TCPUDP連接?

    在使用sep_now的同時能不能使用TCPUDP連接
    發(fā)表于 07-22 06:10

    Purple Pi OH在Android11下測試WiFi和LAN的TCPUDP傳輸速率

    開源鴻蒙硬件方案領跑者觸覺智能本文適用于在PurplePiOH在Andriod11下如何測試WiFi和LAN的TCPUDP傳輸速率。觸覺智能的PurplePiOH鴻蒙開源主板,是華為Laval官方
    的頭像 發(fā)表于 07-16 08:33 ?891次閱讀
    Purple Pi OH在Android11下測試WiFi和LAN的<b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>傳輸速率

    請問esp8266 rtos sdk能否同時啟動tcp socke clent和udp server?

    我在用的是V1.5的rtos 的sdk,想在esp8266上同時啟動tcp的socket client和udp的socket server。 但是我發(fā)現(xiàn),只要我一啟動upd server,tcp
    發(fā)表于 07-12 07:07

    請問ESP32 S3既能TCP通信同時也能UDP通信嗎?

    有一個應用需求,即想通過TCP這種保證到達的方式傳輸指令,又想通過UDP這種方式做圖傳,不知道ESP32 S3模組或者Espressif 有沒有合適的模組同時支持TCPUDP。
    發(fā)表于 06-07 07:17