我创建了一个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服务及其正常运行。
答案 0 :(得分:3)
那是因为你打开一个UDP套接字,而telnet
使用TCP。