©
本文档使用 PHP中文网手册 发布
(PHP 4 >= 4.1.0, PHP 5)
socket_sendto — Sends a message to a socket, whether it is connected or not
$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.
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_INET , SOCK_DGRAM , SOL_UDP );
$msg = "Ping !" ;
$len = strlen ( $msg );
socket_sendto ( $sock , $msg , $len , 0 , '127.0.0.1' , 1223 );
socket_close ( $sock );
?>
[#1] DigitalHuman [2014-05-23 07:54:18]
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
[#2] ole_DOT_omland_AT_gmail_DOT_com [2005-10-12 19:44:56]
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);
?>