使用套接字功能发送/接收数据

时间:2013-02-28 22:04:20

标签: php sockets port

如何将数据从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);
?>

我正在使用它,但我无法收集任何数据!另外,你知道我怎么能超时吗?

有什么问题?

1 个答案:

答案 0 :(得分:0)

您的计划有效。如果它没有接收数据,则可能是服务器的错误。当然,你想要

while ($line);

而不是

while ($data != "0");

如果服务器已关闭连接,则暂停。 对于接收超时(例如7秒),您可以使用

socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>7, "usec"=>0));