国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) )

這篇具有很好參考價值的文章主要介紹了【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) )。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。





一、Socket 套接字簡介




1、Socket 套接字概念


Socket 套接字 是一種 進程之間的 通信機制 , 通過套接字可以在 不同的進程之間 進行數(shù)據(jù)交換 ;

【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃

在 網(wǎng)絡(luò)編程 中 , Socket 套接字 主要用于 客戶端 與 服務(wù)器 之間的 通信 , 大部分 網(wǎng)絡(luò)相關(guān)的應(yīng)用程序 , 都使用到了 Socket 套接字技術(shù) ;


2、Socket 套接字類型


套接字有兩種類型 :

  • 流套接字 : 提供了一個可靠的、面向連接的通信機制 , 可以 順序地傳輸數(shù)據(jù)。
    • 在 TCP/IP 協(xié)議中,流套接字使用 TCP 協(xié)議進行數(shù)據(jù)傳輸。
  • 數(shù)據(jù)報套接字 : 提供了一種無連接、不可靠的通信機制 , 數(shù)據(jù) 以獨立的數(shù)據(jù)包形式傳輸。
    • 在 TCP/IP 協(xié)議中,數(shù)據(jù)報套接字使用 UDP 協(xié)議進行數(shù)據(jù)傳輸。

3、Socket 套接字使用步驟


Socket 套接字使用步驟 :

  • 創(chuàng)建套接字 : 使用 套接字 API 創(chuàng)建一個套接字對象 , 一般由 編程語言 官方提供 標(biāo)準(zhǔn) API ;
  • 綁定 IP 地址和端口號 : 將套接字與一個 IP 地址 和 端口號綁定 ;
  • 建立連接 :
    • 服務(wù)器端監(jiān)聽連接 : 對于流套接字,需要在服務(wù)器端監(jiān)聽客戶端的連接請求 ;
    • 客戶端建立連接 : 對于流套接字,客戶端需要與服務(wù)器建立連接 ;
  • 發(fā)送和接收數(shù)據(jù) : 使用 Socket 套接字 發(fā)送 或 接收 數(shù)據(jù) ;
  • 關(guān)閉連接 : 數(shù)據(jù)傳輸完畢后,關(guān)閉 Socket 套接字連接 ;

4、Socket 套接字服務(wù)端與客戶端


Socket 套接字 進行 數(shù)據(jù)通信時 , 需要有兩個 Socket 套接字分別作為 客戶端 和 服務(wù)器端 :

  • Socket 套接字 服務(wù)器端 : 需要 監(jiān)聽客戶端的請求 , 可以 向 客戶端 發(fā)送消息 , 可以接收來自客戶端的消息 ;
  • Socket 套接字 客戶端 : 需要主動連接 服務(wù)器端 , 可以 向 服務(wù)器端 發(fā)送消息 , 可以接收來自服務(wù)器端的消息 ;

一個 服務(wù)器端 可以 同時與 多個 客戶端 進行 數(shù)據(jù)交互 ;





二、Socket 服務(wù)端與客戶端開發(fā)




1、服務(wù)端


Socket 服務(wù)器端流程 :

  • 創(chuàng)建套接字 : 使用 套接字 API 創(chuàng)建一個套接字對象 , 一般由 編程語言 官方提供 標(biāo)準(zhǔn) API ;
# 1. 創(chuàng)建 socket 實例對象
import time
  • 綁定 IP 地址和端口號 : 將套接字與一個 IP 地址 和 端口號綁定 ;
# 2. 為 socket 實例對象 綁定 IP 地址和端口號
# IP 地址是字符串類型, 端口號是 int 類型, 將這兩個數(shù)據(jù)定義到元組中
socket_server.bind(("127.0.0.1", 8090))
  • 服務(wù)器端監(jiān)聽連接 : 對于流套接字,需要在服務(wù)器端監(jiān)聽客戶端的連接請求 ;
    # 4. 阻塞等待連接 , 如果沒有客戶端連接 , 會一直阻塞在這里
    # accept 函數(shù)返回的是 二元元組 , 使用兩個變量接收該元組
    # conn 是連接的 socket 對象
    # address 是連接的 地址
    client_socket, client_address = socket_server.accept()
  • 發(fā)送和接收數(shù)據(jù) : 使用 Socket 套接字 發(fā)送 或 接收 數(shù)據(jù) ;
    # 向客戶端發(fā)送連接成功提示
    client_socket.send("你好, 客戶端!".encode("UTF-8"))
  • 關(guān)閉連接 : 數(shù)據(jù)傳輸完畢后,關(guān)閉 Socket 套接字連接 ;
    # 關(guān)閉連接
    client_socket.close()

代碼示例 :

"""
Socket 服務(wù)器 代碼示例
"""

# 導(dǎo)入 socket 模塊
import socket

# 1. 創(chuàng)建 socket 實例對象
import time

socket_server = socket.socket()

# 2. 為 socket 實例對象 綁定 IP 地址和端口號
# IP 地址是字符串類型, 端口號是 int 類型, 將這兩個數(shù)據(jù)定義到元組中
socket_server.bind(("127.0.0.1", 8090))

# 3. 服務(wù)器端監(jiān)聽端口
# 傳入的參數(shù)是一個整數(shù) , 該參數(shù)表示允許連接的數(shù)量
# 如果連接已滿后面的連接請求會等待
socket_server.listen(100)


while True:
    # 4. 阻塞等待連接 , 如果沒有客戶端連接 , 會一直阻塞在這里
    # accept 函數(shù)返回的是 二元元組 , 使用兩個變量接收該元組
    # conn 是連接的 socket 對象
    # address 是連接的 地址
    client_socket, client_address = socket_server.accept()

    # 向客戶端發(fā)送連接成功提示
    client_socket.send("你好, 客戶端!".encode("UTF-8"))
    print(f'客戶端連接成功 {client_address}')

    # 5. 服務(wù)器端與客戶端進行交互
    while True:
        # 循環(huán)接收客戶端數(shù)據(jù), 并使用 UTF-8 解碼
        data = client_socket.recv(1024).decode("UTF-8")

        # 向客戶端會送消息
        client_socket.send(f"服務(wù)端已收到: {data}".encode())
        print(f"客戶端: {data}")

        if data == 'quit':
            break

    # 關(guān)閉連接
    client_socket.close()
    print(f'客戶端連接關(guān)閉 {client_address}')

2、客戶端


Socket 客戶端流程 :

  • 創(chuàng)建套接字 : 使用 套接字 API 創(chuàng)建一個套接字對象 , 一般由 編程語言 官方提供 標(biāo)準(zhǔn) API ;
# 1. 創(chuàng)建 socket 實例對象
client_socket = socket.socket()
  • 通過 IP 地址和端口號 連接服務(wù)器 :
# 2. 客戶端連接服務(wù)器, IP 地址和端口號放在元組中
client_socket.connect(('127.0.0.1', 8090))
  • 發(fā)送和接收數(shù)據(jù) : 使用 Socket 套接字 發(fā)送 或 接收 數(shù)據(jù) ;
# 發(fā)送數(shù)據(jù)到服務(wù)器
client_socket.send('你好, 服務(wù)器!'.encode())
  • 關(guān)閉連接 : 數(shù)據(jù)傳輸完畢后,關(guān)閉 Socket 套接字連接 ;
# 4. 關(guān)閉連接
client_socket.close()

代碼示例 :

import socket

# 創(chuàng)建TCP socket對象
import time

# 1. 創(chuàng)建 socket 實例對象
client_socket = socket.socket()

# 2. 客戶端連接服務(wù)器, IP 地址和端口號放在元組中
client_socket.connect(('127.0.0.1', 8090))

# 3. 向服務(wù)器端發(fā)送消息和接收消息
# 發(fā)送數(shù)據(jù)到服務(wù)器
client_socket.send('你好, 服務(wù)器!'.encode())
print("客戶端發(fā)送: 你好, 服務(wù)器!")

time.sleep(1)
# 接收服務(wù)器數(shù)據(jù)
data = client_socket.recv(1024).decode("UTF-8")
print(f"服務(wù)端: {data}")

# 獲取命令行輸入發(fā)送給客戶端
while True:
    command = input("請輸入: ")
    client_socket.send(command.encode())
    print(f"客戶端發(fā)送: {command}")
    if command == 'quit':
        break

    # 接收服務(wù)器數(shù)據(jù)
    data = client_socket.recv(1024).decode("UTF-8")
    print(f"服務(wù)端: {data}")

# 4. 關(guān)閉連接
client_socket.close()
print("客戶端關(guān)閉")


3、執(zhí)行結(jié)果


先啟動服務(wù)器端 :

【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃

啟動客戶端 :
【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃
此時服務(wù)器端信息如下 :
【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃
客戶端中斷輸入 1 :

【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃
服務(wù)器端效果 :
【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃

客戶端繼續(xù)輸入信息 :
【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃
服務(wù)器端信息如下 :
【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃

客戶端輸入 quit 關(guān)閉連接 :

【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃

服務(wù)器端對應(yīng)的數(shù)據(jù) :

【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) ),Python,Python,socket,網(wǎng)絡(luò)編程,TCP,UDP,原力計劃文章來源地址http://www.zghlxwxcb.cn/news/detail-617421.html

到了這里,關(guān)于【Python】Python 網(wǎng)絡(luò)編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務(wù)端與客戶端開發(fā) )的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 網(wǎng)絡(luò)編程—Socket套接字詳解

    網(wǎng)絡(luò)編程—Socket套接字詳解

    目錄 一、網(wǎng)絡(luò)編程 1.1、為什么需要網(wǎng)絡(luò)編程? 1.2、什么是網(wǎng)絡(luò)編程 1.3、發(fā)送端和接收端 ?編輯1.4、請求和響應(yīng) ?編輯1.5、客戶端和服務(wù)端? 二、Socket套接字? 2.1、概念 2.2、分類? 2.2.1、流套接字? 2.2.2、數(shù)據(jù)報套接字? 2.2.3、原始套接字? 2.3、Socket編程注意事項? 1.1、為什

    2024年02月16日
    瀏覽(101)
  • 「網(wǎng)絡(luò)編程」第二講:網(wǎng)絡(luò)編程socket套接字(一)

    「網(wǎng)絡(luò)編程」第二講:網(wǎng)絡(luò)編程socket套接字(一)

    「前言」文章是關(guān)于網(wǎng)絡(luò)編程的socket套接字方面的,下面開始講解! 「歸屬專欄」網(wǎng)絡(luò)編程 「主頁鏈接」個人主頁 「筆者」楓葉先生(fy) 「楓葉先生有點文青病」「每篇一句」 春風(fēng)得意馬蹄疾,一日看盡長安花。 ——孟郊《登科后》 目錄 一、預(yù)備知識 1.1 源IP和目的IP 1.

    2024年02月09日
    瀏覽(87)
  • [JAVAee]網(wǎng)絡(luò)編程-套接字Socket

    [JAVAee]網(wǎng)絡(luò)編程-套接字Socket

    目錄 基本概念 發(fā)送端與接收端 請求與響應(yīng) ?編輯客戶端與服務(wù)器 Socket套接字? 分類 數(shù)據(jù)報套接字 流套接字傳輸模型?? UDP數(shù)據(jù)報套接字編程 DatagramSocket API DatagramPacket API InetSocketAddress API 示例一: 示例二: TCP流數(shù)據(jù)報套接字編程 ServerSocket API Socket API 示例一: ? 網(wǎng)絡(luò)編程指的

    2024年02月13日
    瀏覽(127)
  • 網(wǎng)絡(luò)編程『socket套接字 ‖ 簡易UDP網(wǎng)絡(luò)程序』

    網(wǎng)絡(luò)編程『socket套接字 ‖ 簡易UDP網(wǎng)絡(luò)程序』

    ??個人主頁: 北 海 ??所屬專欄: Linux學(xué)習(xí)之旅、神奇的網(wǎng)絡(luò)世界 ??操作環(huán)境: CentOS 7.6 阿里云遠(yuǎn)程服務(wù)器 在當(dāng)今數(shù)字化時代,網(wǎng)絡(luò)通信作為連接世界的橋梁,成為計算機科學(xué)領(lǐng)域中至關(guān)重要的一部分。理解網(wǎng)絡(luò)編程是每一位程序員必備的技能之一,而掌握套接字編程則

    2024年02月04日
    瀏覽(103)
  • 【網(wǎng)絡(luò)通信】socket編程——TCP套接字

    【網(wǎng)絡(luò)通信】socket編程——TCP套接字

    TCP依舊使用代碼來熟悉對應(yīng)的套接字,很多接口都是在udp中使用過的 所以就不會單獨把他們拿出來作為標(biāo)題了,只會把第一次出現(xiàn)的接口作為標(biāo)題 通過TCP的套接字 ,來把數(shù)據(jù)交付給對方的應(yīng)用層,完成雙方進程的通信 在 tcpServer.hpp 中,創(chuàng)建一個命名空間 yzq 用于封裝 在命名

    2024年02月13日
    瀏覽(102)
  • Linux網(wǎng)絡(luò)編程- 原始套接字(Raw Socket)

    原始套接字(Raw Socket)提供了一種機制,允許應(yīng)用程序直接訪問底層傳輸協(xié)議,繞過操作系統(tǒng)提供的傳輸層接口。這種套接字通常用于實現(xiàn)新的協(xié)議或?qū)ΜF(xiàn)有協(xié)議進行低級別的操作。 以下是對原始套接字的詳細(xì)介紹: 定義與用途 : 原始套接字是直接基于網(wǎng)絡(luò)層(如IP)的。

    2024年02月07日
    瀏覽(97)
  • 【JavaEE初階】 網(wǎng)絡(luò)編程基礎(chǔ)與Socket套接字

    【JavaEE初階】 網(wǎng)絡(luò)編程基礎(chǔ)與Socket套接字

    用戶在瀏覽器中,打開在線視頻網(wǎng)站,如騰訊看視頻,實質(zhì)是通過網(wǎng)絡(luò),獲取到網(wǎng)絡(luò)上的一個視頻資源。 與本地打開視頻文件類似,只是視頻文件這個資源的來源是 網(wǎng)絡(luò) 。 相比本地資源來說,網(wǎng)絡(luò)提供了更為豐富的網(wǎng)絡(luò)資源: 所謂的網(wǎng)絡(luò)資源,其實就是在網(wǎng)絡(luò)中可以獲取

    2024年02月05日
    瀏覽(98)
  • 網(wǎng)絡(luò)編程之 Socket 套接字(使用數(shù)據(jù)報套接字和流套接字分別實現(xiàn)一個小程序(附源碼))

    網(wǎng)絡(luò)編程之 Socket 套接字(使用數(shù)據(jù)報套接字和流套接字分別實現(xiàn)一個小程序(附源碼))

    網(wǎng)絡(luò)編程是指網(wǎng)絡(luò)上的主機,通過不同的進程,以編程的方式實現(xiàn) 網(wǎng)絡(luò)通信(或稱為網(wǎng)絡(luò)數(shù)據(jù)傳輸) 只要滿足不同的進程就可以進行通信,所以即便是在同一個主機,只要不同的進程,基于網(wǎng)絡(luò)傳輸數(shù)據(jù),也屬于網(wǎng)絡(luò)編程 在一次網(wǎng)絡(luò)傳輸中: 發(fā)送端: 數(shù)據(jù)的 發(fā)送方進程

    2024年02月03日
    瀏覽(85)
  • 【網(wǎng)絡(luò)編程】網(wǎng)絡(luò)編程概念,socket套接字,基于UDP和TCP的網(wǎng)絡(luò)編程

    【網(wǎng)絡(luò)編程】網(wǎng)絡(luò)編程概念,socket套接字,基于UDP和TCP的網(wǎng)絡(luò)編程

    前言: 大家好,我是 良辰丫 ,今天我們一起來學(xué)習(xí)網(wǎng)絡(luò)編程,網(wǎng)絡(luò)編程的基本概念,認(rèn)識套接字,UDP與TCP編程.?????? ??個人主頁:良辰針不戳 ??所屬專欄:javaEE初階 ??勵志語句:生活也許會讓我們遍體鱗傷,但最終這些傷口會成為我們一輩子的財富。 ??期待大家三連,關(guān)注

    2023年04月20日
    瀏覽(85)
  • 網(wǎng)絡(luò)編程day1——進程間通信-socket套接字

    ????????基本特征:socket是一種接口技術(shù),被抽象了一種文件操作,可以讓同一計算機中的不同進程之間通信,也可以讓不同計算機中的進程之間通信(網(wǎng)絡(luò)通信) ? ? ? ? 進程A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????? 進程B ? ? 創(chuàng)建socket對象

    2024年02月10日
    瀏覽(107)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包