可通过chrome开发者工具查看http的状态。
-
Remote Address:210.14.147.14:80
-
Request URL:http://www.ucai.cn/home/mission
-
Request Method:GET
-
Status Code:200 OK
socket是一组API的统称,建立scoket请求至少需要一个IP和端口。
服务器端LISTEN是监听,相当于电话接线员,等着来连。ESTABLISHED是已经建立请求。
0.0.0.0是允许所有IP来链接,127.0.0.1是只允许本机,10.131.170.167是允许局域网访问。
/etc/sysconfig/iptables 配置防火墙。
PHP Socket API
socket_create
socket_bind
socket_connect
socket_read
socket_write
socket_close
socket_listen
socket_accept
socket_strerror
socket_bind
socket_connect
socket_read
socket_write
socket_close
socket_listen
socket_accept
socket_strerror
<?php
/**
* @author
*/
class server{
protected $ip;
protected $port;
public function __construct($ip, $port){
$this->ip = $ip;
$this->port = $port;
$this->createSocket();
}
public function createSocket(){
//resource socket_create ( int $domain , int $type , int $protocol )
//创建并返回一个套接字,也称作一个通讯节点。一个典型的网络连接由个套接字构成,一个运行在客户端,另一个运行在服务器端。
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);//AF = Address Family (地址族) INET = Internet ipv4
if($sock<0){
echo "Error:".socket_strerror($sock)."\n";
}
$ret = socket_bind($sock, $this->ip, $this->port);
if(!$ret){
echo "BIND FAILED:".socket_strerror(socket_last_error())."\n";
exit;
}
echo "OK\n";
$rs = socket_listen($sock);
if($rs < 0){
echo "LISTEN_FAILED:" . socket_strerror(socket_last_error()) . "\n";
}
do{
$asock = socket_accept($sock);
if($asock < 0){
echo "ACCEPT_FAILED:" . socket_strerror(socket_last_error()) . "\n";
break;
}
$buf = scoket_read($sock, 1204);
if(!$buf){
echo "READ_FAILED:" . socket_strerror(socket_last_error()) . "\n";
break;
}
$msg = "Received {$buf}\n";
echo $msg;
socket_write($asock, $msg, strlen($msg));
socket_close($asock);
break;
}while (True);
socket_close($sock);
}
}
$server = new server("127.0.0.1", 8110);
var_dump($server);