socket是系統(tǒng)提供的對(duì)tcp/ip操作的接口,swoole這是對(duì)socket在進(jìn)行一個(gè)封裝并提供php操作接口的php擴(kuò)展。
套接字(socket)是一個(gè)抽象層,應(yīng)用程序可以通過它發(fā)送或接收數(shù)據(jù),可對(duì)其進(jìn)行像對(duì)文件一樣的打開、讀寫和關(guān)閉等操作。套接字允許應(yīng)用程序?qū)/O插入到網(wǎng)絡(luò)中,并與網(wǎng)絡(luò)中的其他應(yīng)用程序進(jìn)行通信。網(wǎng)絡(luò)套接字是IP地址與端口的組合。
傳輸層實(shí)現(xiàn)端到端的通信,因此,每一個(gè)傳輸層連接有兩個(gè)端點(diǎn)。那么,傳輸層連接的端點(diǎn)是什么呢?不是主機(jī),不是主機(jī)的IP地址,不是應(yīng)用進(jìn)程,也不是傳輸層的協(xié)議端口。
傳輸層連接的端點(diǎn)叫做套接字(socket)。根據(jù)RFC793的定義:端口號(hào)拼接到IP地址就構(gòu)成了套接字。
所謂套接字,實(shí)際上是一個(gè)通信端點(diǎn),每個(gè)套接字都有一個(gè)套接字序號(hào),包括主機(jī)的IP地址與一個(gè)16位的主機(jī)端口號(hào),即形如(主機(jī)IP地址:端口號(hào))。例如,如果IP地址是210.37.145.1,而端口號(hào)是23,那么得到套接字就是(210.37.145.1:23)。
總之,套接字Socket=(IP地址:端口號(hào)),套接字的表示方法是點(diǎn)分十進(jìn)制的IP地址后面寫上端口號(hào),中間用冒號(hào)或逗號(hào)隔開。每一個(gè)傳輸層連接唯一地被通信兩端的兩個(gè)端點(diǎn)(即兩個(gè)套接字)所確定。
swoole是一個(gè)面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎,使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。
Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動(dòng)通信、企業(yè)軟件、云計(jì)算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用 PHP + Swoole 作為網(wǎng)絡(luò)通信框架,可以使企業(yè) IT 研發(fā)團(tuán)隊(duì)的效率大大提升。
包含以下幾個(gè)特色功能:
1、 類似ORM的數(shù)據(jù)查詢,提供SQL封裝器,讓MySQL的SQL與PHP的Array,會(huì)話,Cache無縫結(jié)合。
2、App MVC分層結(jié)構(gòu),有效的程序結(jié)構(gòu)分層,提高程序的可維護(hù)性和擴(kuò)展性,實(shí)現(xiàn)低耦合,基于接口開發(fā)。
3、集成大量,實(shí)用的功能,比如方便的數(shù)據(jù)庫(kù)操作,模板操作,緩存操作,系統(tǒng)配置,表單處理,分頁,數(shù)據(jù)調(diào)用,字典操作,上傳處理,內(nèi)容編輯,調(diào)試等。
4、模板-數(shù)據(jù)反射系統(tǒng),可以直接在模板中調(diào)用數(shù)據(jù),提供很多標(biāo)簽,可以無需修改程序,只修改模板,即可實(shí)現(xiàn)網(wǎng)站各類更新維護(hù)工作。
另外的幾個(gè)功能:
1、Swoole包含了大量類,提供眾多的功能擴(kuò)展,基本上Web開發(fā)能夠用到的功能類,大部分都可以在Swoole框架中找到。
2、Swoole擁有插件系統(tǒng),F(xiàn)ckeditor、Adodb、pscws中文分詞、中文全文索引系統(tǒng)、最新的Key-Value數(shù)據(jù)庫(kù)思想,TokyoTyrant,可以無限擴(kuò)展框架的功能。
PHP中文網(wǎng),有大量免費(fèi)的swoole入門教程,歡迎大家學(xué)習(xí)!