我認爲php套接字和php流互相重疊。
我已經設法使用套接字或流來創建一個CLI PHP聊天客戶端和一個服務器。Php套接字vs流
這裏一些表示行代碼:
使用套接字:
...
$main_socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Cannot create socket.\n");
@socket_bind($main_socket, $host, $port) or die("Could not bind to socket $host : $port.\n");
@socket_listen($main_socket, 5) or die("Could not set up socket listener\n");
...
使用流:
...
$main_socket = @stream_socket_server ("tcp://$host:$port", $errno, $errstr, STREAM_SERVER_BIND | STREAM_SERVER_LISTEN) or die("Cannot create socket.\n");
$clients = array($main_socket);
$clients_peername = array(array('port' => $port));
fputs(STDOUT, "Waiting for connections...\n");
...
的這裏的一點是,在客戶機和服務器可使用任一插座功能進行 ,要麼流功能。
我知道Streams是PHP核心的一部分,而套接字是擴展。
我的問題(s)爲(是):
- 指socket編程的時候是什麼插座之間的區別和溪流?
- 有沒有什麼能力,與套接字編程有關,一個人可以有另一個不能?
@JamWaffles感謝您的編輯和對我的英語感到抱歉。 – 2012-03-18 21:57:00
沒問題。你的英語幾乎是完美的,所以沒有什麼可擔心的:) – Bojangles 2012-03-18 22:09:39