<?php echo "php"; set_time_limit(0); while(true)
{
echo "begin";
$server_ip = "127.0.0.1";
$server_port = 5000;
$server_socket = socket_create(AF_INET,SOCK_DGRAM,0);
if(!$server_socket){
echo "server_socket create fail";
}
if(($rtn = socket_bind($server_socket,$server_ip,$server_port)) < 0){
echo "socket_bind() fail, reason :".socket_strerror($rtn)."\n";
} $recv_rtn = socket_recvfrom($server_socket,$buf,65535,0,$client_ip,$client_port);
if($buf != ""){
echo "client ip is ".$client_ip;
echo "client port is ".$client_port;
echo "buf is ".$buf;
$sendbuf = "test Hello";
$len = strlen($sendbuf);
socket_sendto($server_socket,$sendbuf,$len,0,$client_ip,$client_port);
}
}
?>
本机通过php.exe然后执行php socket服务器,同时在本地运行一个客户端(是用C++写的),然后客户端发送消息,服务能收到信息,也能成功返回消息可是我在局域网的机子上运行php.exe socket文件,我本地运行客户端,向服务器发送消息却访问不了,寻找解决方式?
{
echo "begin";
$server_ip = "127.0.0.1";
$server_port = 5000;
$server_socket = socket_create(AF_INET,SOCK_DGRAM,0);
if(!$server_socket){
echo "server_socket create fail";
}
if(($rtn = socket_bind($server_socket,$server_ip,$server_port)) < 0){
echo "socket_bind() fail, reason :".socket_strerror($rtn)."\n";
} $recv_rtn = socket_recvfrom($server_socket,$buf,65535,0,$client_ip,$client_port);
if($buf != ""){
echo "client ip is ".$client_ip;
echo "client port is ".$client_port;
echo "buf is ".$buf;
$sendbuf = "test Hello";
$len = strlen($sendbuf);
socket_sendto($server_socket,$sendbuf,$len,0,$client_ip,$client_port);
}
}
?>
本机通过php.exe然后执行php socket服务器,同时在本地运行一个客户端(是用C++写的),然后客户端发送消息,服务能收到信息,也能成功返回消息可是我在局域网的机子上运行php.exe socket文件,我本地运行客户端,向服务器发送消息却访问不了,寻找解决方式?
netstat -ano|find "你的端口号"
看看是否正在监听另外你用什么方式启动的?
用php sockserver.php &或者screen -dmS phpsocksrv php sockserver.php试试,这样你退出的时候php就不会停止了