socket的中文名字称为套接字,这类物品就是说对TCP/iP的“封裝”。实际中的互联网事实上只能四层罢了,从上至下分別是网络层、传输层、网络层、统计数据链路层。最常见的.com协议书则是归属于网络层的协议书,而socket,能够死板的了解为是传输层的这种物品。要是還是没办法了解,那再粗鲁地一点儿tcp://218.221.11.23:9999,看到没?这就是一个tcp socket。
socket赋予了我们操控传输层和网络层的能力,从而得到更强的性能和更高的效率,socket编程是解决高并发网络服务器的最常用解决和成熟的解决方案。任何一名服务器程序员都应当掌握socket编程相关技能。
在php中,可以操控socket的函数一共有两套,一套是socket_系列的函数,另一套是stream_系列的函数。socket_是php直接将C语言中的socket抄了过来得到的实现,而stream_系则是php使用流的概念将其进行了一层封装。下面用socket_*系函数简单为这一系列文章开个篇。
先来做个最简单socket服务器:<?php
$host = '0.0.0.0';
$port = 9999;
// 创建一个tcp socket
$listen_socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
// 将socket bind到IP:port上
socket_bind( $listen_socket, $host, $port );
// 开始监听socket
socket_listen( $listen_socket );
// 进入while循环,不用担