socket_sendto
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_sendto — 接続しているかどうかによらずソケットにメッセージを送信する
説明
socket_sendto(
Socket
string
int
int
string
?int
): int|false
Socket
$socket
,string
$data
,int
$length
,int
$flags
,string
$address
,?int
$port
= null
): int|false
関数 socket_sendto() は、
アドレス addr
の port
を使用し、
data
からソケット socket
に length
バイトのデータを送信します。
パラメータ
socket
-
socket_create() で作成した Socket クラスのインスタンス。
data
-
送信するデータが、
data
から取り出されます。 length
-
data
からlength
バイト分のデータが送信されます。 flags
-
flags
の値は、以下のフラグの任意の組み合わせを 論理 OR 演算子 (|
) で連結したものとなります。flags
がとりうる値MSG_OOB
OOB(out-of-band: 帯域外)データを送信します。 MSG_EOR
レコードにマークをつけます。 レコードでデータがそろいます。 MSG_EOF
ソケットの送信側を閉じ、そのことを知らせる通知を送信データの最後に付加します。 トランザクションでデータがそろいます。 MSG_DONTROUTE
ルータを使用せず、直接つながっているインターフェイスのみを使用します。 address
-
リモートホストの IP アドレス。
port
-
port
は、 データの送信先となるリモートホストのポート番号です。
戻り値
socket_sendto() は、リモートホストに送信したバイト数を返します。
エラーが発生した場合は false
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 |
socket は、Socket クラスのインスタンスになりました。
これより前のバージョンでは、リソース型でした。
|
8.0.0 |
port は、nullable になりました。
|
例
例1 socket_sendto() の例
<?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);
?>
+add a note
User Contributed Notes 1 note
ole_DOT_omland_AT_gmail_DOT_com ¶
19 years ago
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);
?>