Note that there are some explanatory texts on larger screens.

plurals
  1. POudp socket programming in php
    text
    copied!<p>I'm trying to run a udp socket on windows cmd..here's my server script..</p> <pre><code>&lt;?php error_reporting(~E_WARNING); 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"; // Bind the source address if( !socket_bind($sock, '0.0.0.0' , 80) ) { $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"; //Receive some data $r = socket_recvfrom($sock, $buf, 512, 0, $remote_ip, $remote_port); echo "$remote_ip : $remote_port -- " . $buf; //Send back the data to the client socket_sendto($sock, "OK " . $buf , 100 , 0 , $remote_ip , $remote_port); } socket_close($sock); </code></pre> <p>I get a response on running the above script that reads as follows:</p> <pre><code>Socket created Socket bind OK Waiting for data ... </code></pre> <p>Below is my client script..</p> <pre><code>&lt;?php error_reporting(~E_WARNING); $server = '127.0.0.1'; $port = 9999; 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"; while(1) { //Take some input to send echo 'Enter a message to send : '; $input = fgets(STDIN); //Send the message to the server if( ! socket_sendto($sock, $input , strlen($input) , 0 , $server , $port)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not send data: [$errorcode] $errormsg \n"); } //Now receive reply from server and print it if(socket_recv ( $sock , $reply , 2045 , MSG_WAITALL ) === FALSE) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not receive data: [$errorcode] $errormsg \n"); } echo "Reply : $reply"; } </code></pre> <p>On running the above socket, i get the following output..</p> <pre><code>Socket created Enter a message to send:[random input] Could not receive data:[0] The operation completed successfully </code></pre> <p>What's causing this?..after i enter some input, the last line above is displayed instead of 'Reply : [random input]'</p> <p>Thanks in advance</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload