0

ソケットを作成してローカルホストにバインドし、127.0.0.1Microsoft の telnet サービスを使用して接続しようとしましたが、指定したアドレスとポートに接続するたびに次のエラーが発生します。

PHP 警告: socket_write(): ソケット [0] に書き込めません: ソケットが接続されておらず、(sendto 呼び出しを使用してデータグラム ソケットで終了する場合) アドレスが指定されていないため、データの送信または受信の要求は許可されませんでした.

同様のエラーが socket_read によって返されます。telnet が正常に機能し、localhost に socket_connect 要求を送信する必要があることを理解できません。

コードは次のとおりです。

set_time_limit(0);
$socket=null;
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if(socket_bind($socket,"127.0.0.1",58)){    
    if(!socket_listen($socket,0)){
        echo "Problem Listening to the socket";
    }do{
        $res=socket_accept($socket);
        $write="\n Hello the connection has been established";  
        if(!socket_write($socket,$write,strlen($write))){
            echo "Problem Reading the and writing to the socket";
            }                   
            do{
            if(!$clientmsg=socket_read($socket,2048,PHP_NORMAL_READ)){
                echo "Error reading Client Msg";
                break;
                    }
            $repsonse= "Thanks for you input";
            socket_write($socket,$response,strlen($response));
            if($nclientmsg=trim($clientmsg)){
                continue;
            }
            if($clientmsg="close"){
                socket_close($socket);
                echo "The socket has been closed as promised Thanks";
                break 3;
                }
            }while(true);
            }while(true);
}else{
    echo "Problem connecting to the socket.Unable to bind to the specified address";
}

ありがとう。

4

1 に答える 1