socket(註入tcp協議)
IP地址 + 協議(TCP/UDP) + 端口 == 我們稱之為套接字
有瞭“套接字”,我們就能區分誰是誰。
我們要註意幾點:
1、首先我們的網要通。寬帶欠費瞭,你還想連接到外面去那是不可能的。
2、就像剛才打電話那樣。不管你是接電話的人(服務端),還是打電話的人(客戶端),你都得有個“電話機”(很多人以為隻要服務端有電話機)
3、接電話的人(服務端)可以同時接好幾個人電話
4、服務端電話機一直開機的(比如:socket需要等待客戶端連接),一旦有人打進瞭才可以接。
5、通過區號+電話號碼。這就是套接字。中轉機才能區分你到底要和哪個人通話。
6、你借到騷擾電話會怎樣?直接掛機或罵街。這就是協議在其中發揮的作用。(不要告訴我你打誰的電話都能交談甚歡)
server.php
<?php $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); // 購買電話機 socket_bind($socket,'127.0.0.1',9090); // 綁定電話機 socket_listen($socket,5); // 開機 while(true){ $client = socket_accept($socket); // 有人打電話進來 $buf = socket_read($client,1024); // 一次讀取1024的長度 echo $buf; socket_write($socket,'hello socket'); socket_close($socket); // 關掉客戶端 } socket_close($socket); // 關機
client.php:
<?php $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); // 購買電話機 socket_connect($socket,'127.0.0.1',9090); socket_write($socket,'I am client'); $buf = socket_read($socket,1024); echo $buf; socket_close($socket);