2013-04-05 44 views
1

我创建一个PHP程序来听port.Here是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

'telnet 127.0.0.1 5060'是否工作? – hsz 2013-04-05 13:05:22

+0

这也不起作用 – iJade 2013-04-05 13:07:23

+0

您是否从已创建套接字的服务器访问它? – hsz 2013-04-05 13:08:36

回答

3

这是因为你打开一个UDP套接字,并且telnet使用TCP。

+0

好吧,所以如何做一个Telnet类的事情UDP套接字 – iJade 2013-04-05 13:11:03

+0

@iBlue你确定你想UDP而不是TCP? – thejh 2013-04-05 13:11:30

+0

实际上,我想要两个...... – iJade 2013-04-05 13:12:05