<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **socket\_create**(int **$domain**,int **$type**,int **$protocol**) :resource 創建套接字 返回一個套接字,失敗時返回 **`FALSE`**。要讀取錯誤代碼,可以調用[socket\_last\_error()](https://www.php.net/manual/zh/function.socket-last-error.php)。這個錯誤代碼可以通過[socket\_strerror()](https://www.php.net/manual/zh/function.socket-strerror.php)讀取文字的錯誤說明 一個典型的網絡連接由 2 個套接字構成,一個運行在客戶端,另一個運行在服務器端 ``` $socket=socket_create(AF_UNIX,SOCK_STREAM,0); ``` 參數1 指定哪個協議用在當前套接字上:**可用的地址/協議** | Domain | 描述 | | --- | --- | | **`AF_INET`** | IPv4 網絡協議。TCP 和 UDP 都可使用此協議。 | | **`AF_INET6`** | IPv6 網絡協議。TCP 和 UDP 都可使用此協議。 | | **`AF_UNIX`** | 本地通訊協議。具有高性能和低成本的 IPC(進程間通訊)。 | 參數2 選擇套接字使用的類型:**可用的套接字類型** | 類型 | 描述 | | --- | --- | | **`SOCK_STREAM`** | 提供一個順序化的、可靠的、全雙工的、基于連接的字節流。支持數據傳送流量控制機制。**TCP** 協議即基于這種流式套接字。 | | **`SOCK_DGRAM`** | 提供數據報文的支持。(無連接,不可靠、固定最大長度). **UDP**協議即基于這種數據報文套接字。 | | **`SOCK_SEQPACKET`** | 提供一個順序化的、可靠的、全雙工的、面向連接的、固定最大長度的數據通信;數據端通過接收每一個數據段來讀取整個數據包。 | | **`SOCK_RAW`** | 提供讀取原始的網絡協議。這種特殊的套接字可用于手工構建任意類型的協議。一般使用這個套接字來實現 ICMP 請求(例如 ping)。 | | **`SOCK_RDM`** | 提供一個可靠的數據層,但不保證到達順序。一般的操作系統都未實現此功能。 | 參數3:是設置指定參數1套接字下的具體協議,php對tcp和udp設置了常量可以直接使用常量**`SOL_TCP`**和**`SOL_UDP`**,其他的則通過[getprotobyname()](https://www.php.net/manual/zh/function.getprotobyname.php)函數獲取 ~~~ //getprotobyname()給出本地系統上給定協議名稱的協議號 $arr=array("ip","icmp","ggp","tcp", "egp","pup","udp","hmp","xns-idp", "rdp","rvd" ); //Reads the names of protocols into an array.. for($i=0;$i<11;$i++) { $proname=$arr[$i]; echo $proname .":", getprotobyname ($proname)."<br />"; } 結果: ip:0 icmp:1 ggp:3 tcp:6 egp:8 pup:12 udp:17 hmp:20 xns-idp:22 rdp:27 rvd:66 ~~~ **常見協議說明** | 名稱 | 描述 | | --- | --- | | icmp | Internet Control Message Protocol 主要用于網關和主機報告錯誤的數據通信。例如“ping”命令(在目前大部分的操作系統中)就是使用 ICMP 協議實現的。 | | udp | User Datagram Protocol 是一個無連接的、不可靠的、具有固定最大長度的報文協議。由于這些特性,UDP 協議擁有最小的協議開銷。 | | tcp | Transmission Control Protocol 是一個可靠的、基于連接的、面向數據流的全雙工協議。TCP 能夠保障所有的數據包是按照其發送順序而接收的。如果任意數據包在通訊時丟失,TCP 將自動重發數據包直到目標主機應答已接收。因為可靠性和性能的原因,TCP 在數據傳輸層使用 8bit 字節邊界。因此,TCP 應用程序必須允許傳送部分報文的可能。 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看