Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
<?php
echo "****************server*****************\r\n";//设置 IP 和 端口(端口必须保证不被占用,且允许被外部访问)$ip = "127.0.0.1";
$port = 1935;//超时设计set_time_limit(0);//创建socket$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("创建socket失败,原因为:{socket_strerror($socket)}\r\n");//绑定socket到指定ip和端口$ret = socket_bind($socket, $ip, $port) or die("绑定socket失败,原因为:{socket_strerror($ret)}\r\n");//监听socket,最大等会数为4$ret = socket_listen($socket, 4) or die("监听socket失败,原因为:{socket_strerror($ret)}\r\n");//计数$count = 0;
echo "等待连接!!!\r\n";do { //收到请求连接 //调用子socket处理信息
$msgsock = socket_accept($socket); if(!$msgsock){
echo "socket阻塞失败,原因为:{socket_strerror($msgsock)}\r\n";
}
$msg = "<p style='color:red'>连接成功</p>"; //处理客服端输入并返回数据 socket_write($msgsock, $msg, strlen($msg));
$buf = socket_read($msgsock, 8192);
$talkback = "收到的信息为:{$buf}\r\n";
echo $talkback; if(++$count > 5) { break;
}
socket_close($msgsock);
} while(true);
socket_close($socket);