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

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

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

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

python修煉——UDP、TCP

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 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ā)送的內(nèi)容:")

# 發(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":

# 調(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("輸入有誤,請重新輸入")

udp_socket.close()

if __name__ == "__main__":

main()

tcp服務(wù)器代碼

import socket

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

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

# 關(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("請輸入要發(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 這里碰見了一個奇怪的BUG

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

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

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

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

    關(guān)注

    0

    文章

    330

    瀏覽量

    34634
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    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 ?778次閱讀

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

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

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

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

    一文了解Android UDP通信

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

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

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

    如何在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 ?730次閱讀

    芯驛電子 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 ?886次閱讀
     芯驛電子 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次下載

    CMW500進行LTE TCPUDP測試方法

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

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

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

    深度解析TCPUDP協(xié)議

    計算機與網(wǎng)絡(luò)設(shè)備要相互通信,它們必須遵循一種共同的方法或標準。對于不同硬件平臺和操作系統(tǒng)之間的交互而言,這種共同遵循的規(guī)范尤為關(guān)鍵。我們將這一系列指導通信過程的規(guī)則稱為“協(xié)議”。TCPUDP
    的頭像 發(fā)表于 09-02 14:53 ?796次閱讀
    深度解析<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ù)報協(xié)議(UDP)是兩種常用的網(wǎng)絡(luò)協(xié)議,它們在許多應(yīng)用場景中發(fā)
    的頭像 發(fā)表于 08-16 11:06 ?1070次閱讀

    使用sep_now的同時能不能使用TCP、UDP連接?

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

    請問AT支持UDP透傳嗎?

    做了測試,SDK V1.00 AT文件燒寫后,設(shè)定為TCP時,透傳是可以了, 但是設(shè)定為UDP后,透傳出現(xiàn)發(fā)送不成功,但是接收是可以的,是不是AT不支持UDP透傳呢? 測試的指令如下
    發(fā)表于 07-17 08:28

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

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