Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Socket Functions : socket_send

socket_send

Sends data to a connected socket (PHP 4 >= 4.0.7, PHP 5)
int socket_send ( resource socket, string buf, int len, int flags )

The function socket_send() sends len bytes to the socket socket from buf.

Parameters

socket

A valid socket resource created with socket_create() or socket_accept().

buf

A buffer containing the data that will be sent to the remote host.

len

The number of bytes that will be sent to the remote host from buf.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Table 298. Possible values for flags

MSG_OOB Send OOB (out-of-band) data.
MSG_EOR Indicate a record mark. The sent data completes the record.
MSG_EOF Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction.
MSG_DONTROUTE Bypass routing, use direct interface.


Return Values

See Also
socket_sendto()

Code Examples / Notes » socket_send

kingofdos

I changed the Magic Packet function to this. I beleave that an function may not return any value, only an true/false (in the most way's).
<?PHP
function wol_magic_packet($mac,$addr='255.255.255.255') {
//Requirements__________________________
// You need to load the php_sockets.dll (in case of Windows, don't
// know @ linux, compile with --socket-support i beleave ).
// Otherwise he cannot find the socket_create function
//Usage________________________________
// $addr:
// You will send and broadcast tho this addres.
// Normaly you need to use the 255.255.255.255 adres, so i made it as default. So you don't need
// to do anything with this.
// $mac:
// You will WAKE-UP this WOL-enabled computer, you need to add the MAC-addres here.
//
//Return________________________________
// TRUE: When socked was created succesvolly and the message has been send.
// FALSE: Something went wrong
//
//Example_1_____________________________
// When the message has been send you will see the message "Done...."
//
// if ( wol_magic_packet ( '00:00:00:00:00:00' ) )
// echo 'Done...';
// else
// echo 'Error while sending';
//
//Example_2_____________________________
// To loop more computers:
//
// $arr = array(
// '00:00:00:00:00:00',
// '00:00:00:00:00:00'
// );
// foreach($arr as $this_id => $this_mac)
// if (! wol_magic_packet ( $this_mac ))
// echo 'Error while sending to ['. $this_mac .']<br />'."\r\n";
//___________________________________________

//Check if it's an real MAC-addres and split it into an array
if (!preg_match("/([A-F0-9]{2}[-:]){5}[A-F0-9]{2}/",$mac,$maccheck))
return false;
$addr_byte = preg_split("/[-:]/",$maccheck[0]);

//Creating hardware adress
$hw_addr = '';
for ($a=0; $a < 6; $a++)//Changing mac adres from HEXEDECIMAL to DECIMAL
$hw_addr .= chr(hexdec($addr_byte[$a]));

//Create package data
$msg = str_repeat(chr(255),6);
for ($a = 1; $a <= 16; $a++)
$msg .= $hw_addr;
//Sending data
if ( //If
function_exists('socket_create') AND //socket_create exists
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP) AND //Can create the socket
$sock_data = socket_connect($sock, $addr, 2050) //Can connect to the socket
) {  //Then
$sock_data = socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1); //Set
$sock_data = socket_write($sock, $msg, strlen($msg)); //Send data
socket_close($sock); //Close socket
return true;
} else //Esle? :P
return false;
}
?>


Change Language


Follow Navioo On Twitter
socket_accept
socket_bind
socket_clear_error
socket_close
socket_connect
socket_create_listen
socket_create_pair
socket_create
socket_get_option
socket_getpeername
socket_getsockname
socket_last_error
socket_listen
socket_read
socket_recv
socket_recvfrom
socket_select
socket_send
socket_sendto
socket_set_block
socket_set_nonblock
socket_set_option
socket_shutdown
socket_strerror
socket_write
eXTReMe Tracker