Python Socket編程實現(xiàn)網(wǎng)絡(luò)編程
對于有經(jīng)驗的開發(fā)人員來說,掌握的編程語言應(yīng)該是不少的。在這些編程語言中,網(wǎng)絡(luò)編程的應(yīng)用時必不可少的。其中Python也是這樣的編程語言。我們今天將會在這里為大家詳細(xì)介紹一下Python Socket編程再網(wǎng)絡(luò)編程中的應(yīng)用。#t#
Socket:套接字
套接字好比電話的插口,主機和端口就好比區(qū)號和電話號碼,主機:是你要連接到哪里,端口:是從那個口子連過去,和大多數(shù)語言一樣,Python 支持面向連接和無連接。
面向連接即需要先連接然后通訊, 面向連接主要協(xié)議就是傳輸控制協(xié)議(tcp),要創(chuàng)建tcp套接字時需要指定套接字類型為 SOCK_STRAM,表達了他作為流套接字的特點。
無連接,顧名思義無需建立連接就可以進行通訊,這時數(shù)據(jù)到達順序、可靠性就無法保證了。實現(xiàn)這種連接的協(xié)議就是用戶數(shù)據(jù)包協(xié)議(udp)。創(chuàng)建UDP時需要指定套接字類型為 SOCK_DGRAM。
創(chuàng)建 Socket:
創(chuàng)建Python Socket編程用到 Socket模塊函數(shù),語法為:
- Socket(Socket_family,Socket_type,protocol=0)
Socket_family不是 AF_VNIX 就是 AF_INET,通常使用的是AF_INET(不明白可以去查些資料),Socket_type可以是 SOCK_STREAM 或者 SOCK_DGRAM,protocol一般不填,就默認(rèn)為0
創(chuàng)建一個TCP/IP的套接字:
- tcpSock = Socket(Socket.AF_INET,Socket.SOCK_STRAM)
創(chuàng)建一個UDP/IP的套接字:
- udpSock= Socket(Socket.AF_INET,Socket.SOCK_DGRAM)
創(chuàng)建好套接字以后,我們需要使用套接字的內(nèi)建方法,常用的方法:
服務(wù)器端
- s.bind() 綁定地址(主機,端口)到套接字
- s.listen() 開始監(jiān)聽
- s.accept() 被動接受 tcp客戶端連接(阻塞式),等待連接的到來
客戶端
- s.connet() 主動初始化tcp服務(wù)器連接
- s.connet_ex() connet擴展版本,出錯時返回錯誤代碼,不拋出異常
- s.recv() 接受tcp數(shù)據(jù)
- s.send() 發(fā)送數(shù)據(jù)
- s.close() 關(guān)閉套接字
常用的Python Socket編程方法如上,還有一些方法大家可以查詢些資料。