1. 程式人生 > >PHP Socket 編程之9個主要函數的使用之測試案例

PHP Socket 編程之9個主要函數的使用之測試案例

客戶 alt sockets 參考 作用 ket mysq nec udp

php的socket編程算是比較難以理解的東西吧,不過,我們只要理解socket幾個函數之間的關系,以及它們所扮演的角色,那麽理解起來應該不是很難了,在筆者看來,socket編程,其實就是建立一個網絡服務的客戶端和服務端,這和mysql的客戶端和服務端是一樣的,你只要理解mysql的客戶端和服務端是怎麽一回事,你就應該能夠理解下面我要講的東西吧。

關於socket編程所涉及到的網絡協議,什麽TCP啊,UDP啊,什麽socket三次握手等等,這些網絡協議網上有很詳細的解釋,這裏不講,只截個socket建立套接的過程圖讓你瞧瞧:

技術分享圖片

socket是怎麽建立連接的呢?上面已經提到過了,它建立連接的過程是與mysql的客戶端和服務端的連接本質是一樣的。而它與mysql不同的是,mysql的服務端和客戶端都已經為我們編輯好了,我們只要應用就行了。但是,關鍵時刻來啦,socket它什麽東西都沒有提供給我們,唯一提供給我們的就是:幾十個socket函數。

參考Socket根據官方文檔:http://php.net/manual/zh/book.sockets.php

PHP Socket 編程之8個主要函數分別是:

  • socket_create — 創建一個套接字(通訊節點)作用:創建一個socket套接字,說白了,就是一個網絡數據流。返回值:一個套接字,或者是false,參數錯誤發出E_WARNING警告socket_create創建並返回一個套接字,也稱作一個通訊節點。一個典型的網絡連接由2個套接字構成,一個運行在客戶端,另一個運行在服務器端。
  • socket_bind — 給套接字綁定名字

  • socket_connect — 開啟一個套接字連接 返回true 或false
  • socket_listen —監聽一個套接字,返回值為true或者false
  • socket_accept — 接收套接字的資源信息,成功返回套接字的信息資源,失敗為false
  • socket_read — 作用:讀取套接字的資源信息,返回值:成功把套接字的資源轉化為字符串信息,失敗為false
  • socket_send — 發送數據
  • socket_write — 作用:把數據寫入套接字中 返回值:成功返回字符串的字節長度,失敗為false
  • socket_close — 關閉套接字資源

PHP Socket 編程之9個主要函數的使用之測試案例