socket_send
Description
The socket_send of Sockets for PHP sends data to a connected socket.
Syntax
socket_send(
Socket $socket,
string $data,
int $length,
int $flags
): int|falseParameters
socket
A Socket instance created with socket_create() or socket_accept().
data
A buffer containing the data that will be sent to the remote host.
length
The number of bytes that will be sent to the remote host from data.
flags
The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.
| Constant | Description |
|---|---|
| MSG_OOB | Send 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
Returns the number of bytes sent, or false on error.
Examples
1 · socket data length flags · MSG_OOB
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5000;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$length = 2048;
$flags = MSG_OOB;
$return = socket_send($socket, $data, $length, $flags);
if($return === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_send: $socket_strerror");
}
var_export($return);
socket_close($socket);
socket_close($clientsocket);
socket_close($serversocket);
socket_bind: Address already in use
2 · socket data length flags · MSG_EOR
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5000;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$length = 2048;
$flags = MSG_EOR;
$return = socket_send($socket, $data, $length, $flags);
if($return === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_send: $socket_strerror");
}
var_export($return);
socket_close($socket);
socket_close($clientsocket);
socket_close($serversocket);
socket_bind: Address already in use
3 · socket data length flags · MSG_EOF
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5000;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$length = 2048;
$flags = MSG_EOF;
$return = socket_send($socket, $data, $length, $flags);
if($return === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_send: $socket_strerror");
}
var_export($return);
socket_close($socket);
socket_close($clientsocket);
socket_close($serversocket);
socket_bind: Address already in use
4 · socket data length flags · MSG_DONTROUTE
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5000;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$length = 2048;
$flags = MSG_DONTROUTE;
$return = socket_send($socket, $data, $length, $flags);
if($return === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_send: $socket_strerror");
}
var_export($return);
socket_close($socket);
socket_close($clientsocket);
socket_close($serversocket);
socket_bind: Address already in use
Links
Sockets
- socket_accept
- socket_addrinfo_bind
- socket_addrinfo_connect
- socket_addrinfo_explain
- socket_addrinfo_lookup
- socket_atmark
- socket_bind
- socket_clear_error
- socket_close
- socket_cmsg_space
- socket_connect
- socket_create
- socket_create_listen
- socket_create_pair
- socket_export_stream
- socket_get_option
- socket_getopt
- socket_getpeername
- socket_getsockname
- socket_import_stream
- socket_last_error
- socket_listen
- socket_read
- socket_recv
- socket_recvfrom
- socket_recvmsg
- socket_select
- socket_sendmsg
- socket_sendto
- socket_set_block
- socket_set_nonblock
- socket_set_option
- socket_setopt
- socket_shutdown
- socket_strerror
- socket_write
- socket_wsaprotocol_info_export
- socket_wsaprotocol_info_import
- socket_wsaprotocol_info_release