socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_sendtoSends a message to a socket, whether it is connected or not

说明

int socket_sendto ( resource $socket , string $buf , int $len , int $flags , string $addr [, int $port = 0 ] )

The function socket_sendto() sends len bytes from buf through the socket socket to the port at the address addr.

参数

socket

A valid socket resource created using socket_create().

buf

The sent data will be taken from buffer buf.

len

len bytes from buf will be sent.

flags

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

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.

addr

IP address of the remote host.

port

port is the remote port number at which the data will be sent.

返回值

socket_sendto() returns the number of bytes sent to the remote host, or FALSE if an error occurred.

范例

Example #1 socket_sendto() Example

<?php
    $sock 
socket_create(AF_INETSOCK_DGRAMSOL_UDP);

    
$msg "Ping !";
    
$len strlen($msg);

    
socket_sendto($sock$msg$len0'127.0.0.1'1223);
    
socket_close($sock);
?>

参见

User Contributed Notes

DigitalHuman 23-May-2014 04:54
Does anyone have a clue if its possible to get the IP-address of the network interface that response to the broadcast command?

Cheers,

Victor
ole_DOT_omland_AT_gmail_DOT_com 13-Oct-2005 04:44
Here's how you can make an udp broadcast, useful sometimes, and does seem hard to figure out hwo to do..

<?php
$sock
= socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $broadcast_string, strlen($broadcast_string), 0, '255.255.255.255', $port);
?>