91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何實現套接字創建

發布時間:2022-05-26 09:15:45 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“python如何實現套接字創建”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python如何實現套接字創建”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

1、網絡協議
  

TCP / IP 是設備用于在 Internet 和大多數本地網絡上進行通信的一組協議。 TCP 更可靠,具有大量錯誤檢查并需要更多資源。 HTTP,SMTP 或 FTP 等服務使用它。 UDP 的可靠性要差得多,錯誤檢查的能力也有限,所需資源也更少。 VoIP 等服務使用它。

socket.SOCK_STREAM用于為 TCP 創建套接字,而socket.SOCK_DGRAM為 UDP 創建套接字。

2、地址族
  

創建套接字時,必須指定其地址族,在套接字中使用該類型。

AF_UNIX,AF_LOCAL-本地通訊

AF_INET-IPv4 Internet 協議

AF_INET6-IPv6 Internet 協議

AF_IPX-IPX-Novell 協議

AF_BLUETOOTH-無線藍牙協議

AF_PACKET-底層數據包接口

對于AF_INET地址族,指定了一對(主機,端口)。 host是一個字符串,表示互聯網域表示法中的主機名(如example.com)或 IPv4 地址(如93.184.216.34),并且 port 是整數。

3、通過域名獲取IP地址

import socket
ip = socket.gethostbyname("geek-docs.com")
print(ip)

4、socket

TCP ipv4
import socket
# 創建用于IPV4的TCP套接字
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    # 工作時間服務器的主機名和端口
    host = "time.nist.gov"
    port = 13
    # 連接到遠程套接字
    s.connect((host, port))
    # 將數據發送到套接字。套接字必須連接到遠程套接字。從字節發送數據,直到發送完所有數據或發生錯誤為止
    s.sendall(b'')
    print(str(s.recv(4096), 'utf-8'))
# HEAD請求:HEAD 請求是沒有消息正文的 GET 請求。 請求/響應的標頭包含元數據,例如 HTTP 協議版本或內容類型。
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(("webcode.me", 80))
    s.sendall(b"HEAD / HTTP/1.1\r\nHost: webcode.me\r\nAccept: text/html\r\n\r\n")
    print(str(s.recv(1024), 'utf-8'))
#GET 請求:請求指定資源的表示形式。 使用 GET 的請求應僅檢索數據
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(("webcode.me", 80))
    # 對于 HTTP 1.1 協議,默認情況下,連接可以是持久的。 這就是為什么我們發送Connection: close標頭的原因。
    s.sendall(b"GET / HTTP/1.1\r\nHost: webcode.me\r\nAccept: text/html\r\nConnection: close\r\n\r\n")
    while True:
        data = s.recv(1024)
        if not data:
            break
        print(data.decode())
#回顯客戶端服務器示例
import socket
import time
with socket.socket() as s:
    host = 'localhost'
    port = 8001
    s.bind((host, port))
    print(f'socket binded to {port}')
    s.listen()
    con, addr = s.accept()
    with con:
        while True:
            data = con.recv(1024)
            if not data:
                break
            con.sendall(data)
#異步服務器
import asyncio
async def handle_client(reader, writer):
    data = (await reader.read(1024))
    writer.write(data)
    writer.close()
loop = asyncio.get_event_loop()
loop.create_task(asyncio.start_server(handle_client, 'localhost', 8001))
loop.run_forever()

讀到這里,這篇“python如何實現套接字創建”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夹江县| 江达县| 库车县| 呈贡县| 勐海县| 龙门县| 新晃| 渑池县| 亳州市| 辽源市| 改则县| 塔河县| 乐山市| 金阳县| 原平市| 江西省| 丹江口市| 保山市| 屏山县| 丹凤县| 大英县| 湖南省| 宁陵县| 韶关市| 阆中市| 灌云县| 张家川| 曲麻莱县| 阿拉尔市| 双柏县| 土默特右旗| 大埔县| 图木舒克市| 石门县| 前郭尔| 东明县| 潼关县| 广宗县| 内黄县| 云梦县| 红河县|