2013-04-05 71 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