99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

python修煉——UDP、TCP

電子設(shè)計(jì) ? 來源:電子設(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)接聽, listen方法可以指定同時(shí)連接的客戶端

tcp_socket.listen(128)

while True:

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

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

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

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

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

print(colient_addr)

while True:

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

colient_data = colient_socket.recv(1024)

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

if colient_data:

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

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

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

else:

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

break

# 關(guān)閉套接字

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)

# 鏈接服務(wù)器, tcp客戶端需要先鏈接服務(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 這里碰見了一個(gè)奇怪的BUG

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

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

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

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

    關(guān)注

    0

    文章

    330

    瀏覽量

    34661
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    開源直接用!UDP-UART數(shù)據(jù)透?jìng)鱽砹?/a>

    今天就來分享一下UDP-UART透?jìng)魇纠?,源碼開放,可根據(jù)實(shí)際需求靈活應(yīng)用。 一、UDP-UART透?jìng)骱?jiǎn)介 UDP-UART透?jìng)魇且环N將UDP數(shù)據(jù)流直接傳輸?shù)経ART接口的通信方式。它
    的頭像 發(fā)表于 02-05 17:14 ?337次閱讀
    開源直接用!<b class='flag-5'>UDP</b>-UART數(shù)據(jù)透?jìng)鱽砹? />    </a>
</div>                              <div   id=

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

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

    Web端TCP/UDP測(cè)試工具!小白必學(xué)~

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

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

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

    一文了解Android UDP通信

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

    socket 和 UDP 協(xié)議的對(duì)比

    。 Socket 定義 Socket 是一個(gè)抽象層,它提供了一種方式,使得應(yīng)用程序能夠發(fā)送和接收數(shù)據(jù)。在網(wǎng)絡(luò)編程中,Socket 允許程序創(chuàng)建一個(gè)通信端點(diǎn),通過這個(gè)端點(diǎn),程序可以與其他程序進(jìn)行數(shù)據(jù)交換。Socket 可以基于不同的傳輸層協(xié)議,如 TCPUDP。 特點(diǎn)
    的頭像 發(fā)表于 11-12 14:28 ?902次閱讀

    如何在Python中使用socket

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

    芯驛電子 ALINX 推出全新 IP 核產(chǎn)品線,覆蓋 TCP/UDP/NVMe AXI IP 核

    10GBe/40GBe UDP 協(xié)議棧 IP 核、10GbE TCP/IP 協(xié)議棧 IP 核和 NVMe AXI IP 核。 ? ALINX 發(fā)布的 10GbE TCP/IP 協(xié)議棧 IP 核,能夠?qū)崿F(xiàn)
    的頭像 發(fā)表于 10-30 17:39 ?901次閱讀
     芯驛電子 ALINX 推出全新 IP 核產(chǎn)品線,覆蓋 <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>/NVMe AXI IP 核

    TCP&UDP調(diào)試工具

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

    UDP丟包的原因和解決方案

    每個(gè) UDP 報(bào)文分為 UDP 報(bào)頭和 UDP 數(shù)據(jù)區(qū)兩部分。報(bào)頭由 4 個(gè) 16 位長(zhǎng)(2 字節(jié))字段組成,分別說明該報(bào)文的源端口、目的端口、報(bào)文長(zhǎng)度和校驗(yàn)值。
    的頭像 發(fā)表于 10-22 14:38 ?4571次閱讀
    <b class='flag-5'>UDP</b>丟包的原因和解決方案

    CMW500進(jìn)行LTE TCPUDP測(cè)試方法

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

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

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

    深度解析TCPUDP協(xié)議

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

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

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

    使用sep_now的同時(shí)能不能使用TCP、UDP連接?

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