无法telnet到PHP套接字代码

时间:2013-04-05 13:03:46

标签: php sockets telnet

我创建了一个php程序来监听端口。这是php代码

<?php

if(!($sock = socket_create(AF_INET, SOCK_DGRAM, 0)))
{
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);
    die("Couldn't create socket: [$errorcode] $errormsg \n");
}
echo "Socket created \n";


if( !socket_bind($sock, "192.168.0.177" , 5060) )
{
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);
    die("Could not bind socket : [$errorcode] $errormsg \n");
}
echo "Socket bind OK \n";

while(1)
{
    echo "Waiting for data ... \n";

    $r = socket_recvfrom($sock, $buf, 512, 0, $remote_ip, $remote_port);

    echo $buf;
}

?>

但是当我telnet 192.168.0.177 5060我得到消息

Could not open connection to the host on port 5060

我检查了telnet服务及其正常运行。

1 个答案:

答案 0 :(得分:3)

那是因为你打开一个UDP套接字,而telnet使用TCP。