導(dǎo)讀 | socket簡介,套接字可以看成是兩個網(wǎng)絡(luò)應(yīng)用程序進(jìn)行通信時,各自通信連接中的一個端點。通信時,其中的一個網(wǎng)絡(luò)應(yīng)用程序?qū)⒁獋鬏數(shù)囊欢涡畔懭胨谥鳈C(jī)的Socket中,該Socket通過網(wǎng)絡(luò)接口卡的傳輸介質(zhì)將這段信息發(fā)送給另一臺主機(jī)的Socket中,使這段信息能傳送到其他程序中。因此,兩個應(yīng)用程序之間的數(shù)據(jù)傳輸要通過套接字來完成。 |
首要解決的問題是如何唯一標(biāo)識一個進(jìn)程,否則通信無從談起!在1臺電腦上可以通過進(jìn)程號(PID)來唯一標(biāo)識一個進(jìn)程,但是在網(wǎng)絡(luò)中這是行不通的。
在網(wǎng)絡(luò)應(yīng)用程序設(shè)計時,由于TCP/IP的核心內(nèi)容被封裝在操作系統(tǒng)中,如果應(yīng)用程序要使用TCP/IP,可以通過系統(tǒng)提供的TCP/IP的編程接口來實現(xiàn)。在Windows環(huán)境下,網(wǎng)絡(luò)應(yīng)用程序編程接口稱作Windows Socket。為了支持用戶開發(fā)面向應(yīng)用的通信程序,大部分系統(tǒng)都提供了一組基于TCP或者UDP的應(yīng)用程序編程接口(API),該接口通常以一組函數(shù)的形式出現(xiàn),也稱為套接字(Socket)。
其實TCP/IP協(xié)議族已經(jīng)幫我們解決了這個問題,網(wǎng)絡(luò)層的“ip地址”可以唯一標(biāo)識網(wǎng)絡(luò)中的主機(jī),而傳輸層的“協(xié)議+端口”可以唯一標(biāo)識主機(jī)中的應(yīng)用進(jìn)程(進(jìn)程)。
這樣利用
ip地址,協(xié)議,端口就可以標(biāo)識網(wǎng)絡(luò)的進(jìn)程了,網(wǎng)絡(luò)中的進(jìn)程通信就可以利用這個標(biāo)志與其它進(jìn)程進(jìn)行交互
創(chuàng)新互聯(lián)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、成都網(wǎng)頁設(shè)計、成都微信小程序、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、成都App定制開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計公司,等你一起來見證!
- 所謂
進(jìn)程
指的是:運行的程序以及運行時用到的資源這個整體稱之為進(jìn)程(在講解多任務(wù)編程時進(jìn)行詳細(xì)講解)- 所謂
進(jìn)程間通信
指的是:運行的程序之間的數(shù)據(jù)共享- 后面課程中會詳細(xì)說到,像網(wǎng)絡(luò)層等知識,不要著急
socket(簡稱
套接字
) 是進(jìn)程間通信的一種方式,它與其他進(jìn)程間通信的一個主要不同是:
它能實現(xiàn)不同主機(jī)間的進(jìn)程間通信,我們網(wǎng)絡(luò)上各種各樣的服務(wù)大多都是基于 Socket 來完成通信的
例如我們每天瀏覽網(wǎng)頁、QQ 聊天、收發(fā) email 等等
在 Python 中 使用socket 模塊的函數(shù) socket 就可以完成:
import socket socket.socket(AddressFamily, Type)
函數(shù) socket.socket 創(chuàng)建一個 socket,該函數(shù)帶有兩個參數(shù):
創(chuàng)建一個tcp socket(tcp套接字)
import socket# 創(chuàng)建tcp的套接字s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# ...這里是使用套接字的功能(省略)...# 不用的時候,關(guān)閉套接字s.close()
創(chuàng)建一個udp socket(udp套接字)
import socket# 創(chuàng)建udp的套接字s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# ...這里是使用套接字的功能(省略)...# 不用的時候,關(guān)閉套接字s.close()
本文原創(chuàng)地址: https://www.linuxprobe.com/socket-jeshao-xuexi.html