Python socket編程在具體應(yīng)用中前兩個步驟的介紹
很多人對Python這一計算機語言都有所了解,而了解Python socket編程的人對它的相關(guān)實際操方案卻不是很了解,以下的文章就是對Python socket編程在實際相關(guān)應(yīng)用中的方案的介紹,希望你會有所收獲。
一、套接字
套接字是為特定網(wǎng)絡(luò)協(xié)議(例如TCP/IP,ICMP/IP,UDP/IP等)套件對上的網(wǎng)絡(luò)應(yīng)用程序提供者提供當前可移植標準的對象。它們允許程序接受并進行連接,如發(fā)送和接受數(shù)據(jù)。為了建立通信通道,網(wǎng)絡(luò)通信的每個端點擁有一個套接字對象極為重要。
套接字為BSD UNIX系統(tǒng)核心的一部分,而且他們也被許多其他類似UNIX的操作系統(tǒng)包括Linux所采納。許多非BSD UNIX系統(tǒng)(如ms-dos,windows,os/2,mac os及大部分主機環(huán)境)都以庫形式提供對套接字的支持。
三種***的套接字類型是:stream,datagram和raw。stream和datagram套接字可以直接與TCP協(xié)議進行接口,而raw套接字則接口到IP協(xié)議。但套接字并不限于TCP/IP。
二、套接字模塊
套接字模塊是一個非常簡單的基于對象的接口,它提供對低層BSD套接字樣式網(wǎng)絡(luò)的訪問。使用該模塊可以實現(xiàn)客戶機和服務(wù)器套接字。要在python 中建立具有TCP和流套接字的簡單服務(wù)器,需要使用socket模塊。利用該模塊包含的函數(shù)和類定義,可生成通過網(wǎng)絡(luò)通信的程序。一般來說,建立服務(wù)器連接需要六個步驟。
第1步是創(chuàng)建socket對象。調(diào)用socket構(gòu)造函數(shù)。
- socketsocket=socket.socket(familly,type)
family的值可以是AF_UNIX(Unix域,用于同一臺機器上的進程間通訊),也可以是AF_INET(對于IPV4協(xié)議的TCP和 UDP),至于type參數(shù),SOCK_STREAM(流套接字)或者 SOCK_DGRAM(數(shù)據(jù)報文套接字),SOCK_RAW(raw套接字)。第2步則是將socket綁定(指派)到指定地址上,
- socket.bind(address)
address必須是一個雙元素元組,((host,port)),主機名或者ip地址+端口號。如果端口號正在被使用或者保留,或者主機名或ip地址錯誤,則引發(fā)socke.error異常。第3步,綁定后,必須準備好套接字,以便接受連接請求。
- socket.listen(backlog)
backlog指定了最多連接數(shù),至少為1,接到連接請求后,這些請求必須排隊,如果隊列已滿,則拒絕請求。第4步,服務(wù)器套接字通過socket的accept方法等待客戶請求一個連接:
- connection,address=socket.accept()
調(diào)用accept方法時,socket會進入'waiting'(或阻塞)狀態(tài)??蛻粽埱筮B接時,方法建立連接并返回服務(wù)器。accept方法返回一個含有倆個元素的元組,形如(connection,address)。***個元素(connection)是新的socket對象,服務(wù)器通過它與客戶通信;第二個元素(address)是客戶的internet地址。
【編輯推薦】
- 使用Python串口時應(yīng)用到的模塊有哪些
- PythonS60手機中搭建手機運行平臺的五個步驟
- Python字符串中的mapping的功能介紹
- Python字符串在實際操作搜索與替換
- Python二維數(shù)組在創(chuàng)建過程中步驟詳解