0

PHP ページから TCP ポートにデータを送信するにはどうすればよいですか?

<?php 
// parameters to connect to server
$ip = "192.168.1.3";
$port = "59995";
$data = "Hello";
$output = "";

// Create a TCP Stream Socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Connect to the server.
$result = socket_connect($socket, $ip, $port);

// Write to socket!
socket_write($socket, $data, strlen($data));

// Read from server
do 
{
  $line =@socket_read($socket,2048);
  echo $line. "\n";
} 
while ($data != "0");

// Close and return.
socket_close($socket);
?>

使っているのにデータが届かない!また、これをタイムアウトにする方法を知っていますか?

何が問題ですか?

4

1 に答える 1

0

Your program works. If it doesn't receive data, it might be the server's fault. Surely, you want

while ($line);

instead of

while ($data != "0");

to let it halt if the server has closed the connection. For a receive timeout (e. g. 7 s), you can use

socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>7, "usec"=>0));
于 2014-06-04T09:12:23.773 に答える