python中什么是套接字
本篇文章給大家分享的是有關(guān)python中什么是套接字,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
python有哪些常用庫(kù)
python常用的庫(kù):1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
1、概念
網(wǎng)絡(luò)編程中的一個(gè)基本組件是套接字(socket)。套接字基本上是一個(gè)信息通道,兩端各有一個(gè)程序。這些程序可能位于(通過(guò)網(wǎng)絡(luò)相連的)不同的計(jì)算機(jī)上,通過(guò)套接字向?qū)Ψ桨l(fā)送信息。在 Python 中,大多數(shù)網(wǎng)絡(luò)編程都隱藏了模塊 socket 的基本工作原理,不與套接字直接交互。
2、分類
服務(wù)器套接字和客戶端套接字。創(chuàng)建服務(wù)器套接字后,讓它等待連接請(qǐng)求的到來(lái)。這樣,它將在某個(gè)網(wǎng)絡(luò)地址(由 IP 地址和端口號(hào)組成)處監(jiān)聽,直到客戶端套接字建立連接。隨后,客戶端和服務(wù)器就能通信了。
客戶端套接字處理起來(lái)通常比服務(wù)器套接字容易些,因?yàn)榉?wù)器必須準(zhǔn)備隨時(shí)處理客戶端的連接,還必須處理多個(gè)連接;而客戶端只需連接,完成任務(wù)后再斷開連接即可。
3、參數(shù)
套接字是模塊 socket 中 socket 類的實(shí)例。實(shí)例化套接字最多可指定三個(gè)參數(shù):一個(gè)地址族(默認(rèn)為 socket.AF_INET);是流套接字(socket.SOCK_STREAM,默認(rèn)設(shè)置)還是數(shù)據(jù)報(bào)套接字(socket.SOCK_DGRAM);協(xié)議(使用默認(rèn)值 0 就好)。創(chuàng)建普通套接字時(shí),不用提供任何參數(shù)。
4、調(diào)用方法
服務(wù)器套接字先調(diào)用方法 bind,再調(diào)用方法 listen 來(lái)監(jiān)聽特定的地址。然后,客戶端套接字就可連接到服務(wù)器了,辦法是調(diào)用方法 connect 并提供調(diào)用方法 bind 時(shí)指定的地址(在服務(wù)器端,可使用函數(shù) socket.gethostname 獲取當(dāng)前機(jī)器的主機(jī)名)。這里的地址是一個(gè)格式為 (host, port) 的元組,其中 host 是主機(jī)名(如 www.example.com),而 port 是端口號(hào)(一個(gè)整數(shù))。方法 listen 接受一個(gè)參數(shù)——待辦任務(wù)清單的長(zhǎng)度(即最多有多少個(gè)連接在隊(duì)列中等待接納,到達(dá)這個(gè)數(shù)量后開始拒絕連接)。
總結(jié)
以上是生活随笔為你收集整理的python中什么是套接字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql跨进程锁_python基于my
- 下一篇: lfw2019_来自 LFW SS20