socket介绍
Socket詳解:https://realpython.com/python-sockets/
要想理解socket首先得熟悉一下TCP/IP協(xié)議族,?TCP/IP(Transmission Control Protocol/Internet Protocol)即傳輸控制協(xié)議/網(wǎng)間協(xié)議,定義了主機(jī)如何連入因特網(wǎng)及數(shù)據(jù)如何再它們之間傳輸?shù)臉?biāo)準(zhǔn),
從字面意思來看TCP/IP是TCP和IP協(xié)議的合稱,但實(shí)際上TCP/IP協(xié)議是指因特網(wǎng)整個TCP/IP協(xié)議族。不同于ISO模型的七個分層,TCP/IP協(xié)議參考模型把所有的TCP/IP系列協(xié)議歸類到四個抽象層中
應(yīng)用層:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
傳輸層:TCP,UDP
網(wǎng)絡(luò)層:IP,ICMP,OSPF,EIGRP,IGMP
數(shù)據(jù)鏈路層:SLIP,CSLIP,PPP,MTU
每一抽象層建立在低一層提供的服務(wù)上,并且為高一層提供服務(wù),看起來大概是這樣子的
socket
socket:套接字,是進(jìn)程間通信的一種方式,socket是在應(yīng)用層和傳輸層之間的一個抽象層,它把TCP/IP層復(fù)雜的操作抽象為幾個簡單的接口供應(yīng)用層調(diào)用已實(shí)現(xiàn)進(jìn)程在網(wǎng)絡(luò)中通信。
其主要特點(diǎn)有:可以實(shí)現(xiàn)不同主機(jī)間(網(wǎng)絡(luò))的進(jìn)程通信,幾乎所有的網(wǎng)絡(luò)進(jìn)程通信都是用socket來實(shí)現(xiàn)通信的
創(chuàng)建socket的基本流程
一、 使用socket實(shí)現(xiàn)不同主機(jī)進(jìn)程的通信的流程
1創(chuàng)建socket對象
2. 使用socket對象發(fā)送與接收數(shù)據(jù)
3. 關(guān)閉socket
二、 socket.socket 創(chuàng)建一個 socket,該函數(shù)帶有兩個參數(shù):
Address Family:地址族,可以選擇 AF_INET(用于 Internet 進(jìn)程間通 信) 或者 AF_UNIX(用于同一臺機(jī)器進(jìn)程間通信),實(shí)際工作中常用AF_INET
Type:套接字類型,可以是 SOCK_DGRAM(數(shù)據(jù)報(bào)套接字,主要用于 UDP 協(xié)議)或者 SOCK_STREAM(流式套接字,主要用于 TCP 協(xié)議)
?
使用socket實(shí)現(xiàn)網(wǎng)絡(luò)通信流程
def main():# 1. 創(chuàng)建socket對象sc = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2. 使用socket對象發(fā)送與接收數(shù)據(jù)# sc.sendto() # 發(fā)送數(shù)據(jù)# sc.recvfrom() # 接收數(shù)據(jù)# 3.關(guān)閉socketprint("-----socket run-------")sc.close() if __name__ == "__":main()轉(zhuǎn)載于:https://www.cnblogs.com/xiaolu915/p/10511195.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
- 上一篇: NIO(二)
- 下一篇: DirectX11 With Windo