Fórumok
Szeretnék egy serverrel kommunikálni, annak speciális protokolján.
A tcp kapcsolat felépül, elküldöm a beadandó text-et, erre a server válaszol (tcp dump), de valahogy nem jön, a választ a php nem tudja kiolvasni, vagy nem kapja meg, vagy én vagyok béna.
$stream = stream_socket_client("tcp://".$ip.":".$tcp_port,$errno,$errstr,30);
if (!$stream)
{
echo "$errstr ($errno)<br />\n";
}
else
{
stream_set_blocking ($stream,0);
$out = "00;7;O;74637060000;0100;F1";
fwrite($stream, $out);
$stat=socket_get_status($stream);
echo fgets($stream, $stat["unread_bytes"]);
fclose($stream);
}
Erre ezt kapom: Warning: fgets() [function.fgets]: Length parameter must be greater than 0 in
- 1098 megtekintés
Hozzászólások
Én korábban egy hasonló problémával találkoztam. Akkor az volt a megoldás, hogy a php.ini -ben
always_populate_raw_post_data = On
Off-ról.
Na, kicsit benéztem, azt hiszem ennek ide semmi köze :( Sorry, már nagyon "péntek" van..
- A hozzászóláshoz be kell jelentkezni
Megoldottam másképp
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// Connect to destination address
socket_connect($sock, $ip, $tcp_port);
// Write
$out = "000;234;ACDF6756EBB8;000;AA";
socket_write($sock, $out);
$terminator = "";
while ($terminator != "\n") {
$nr=socket_recv($sock,$terminator,1,0);
echo $terminator;
$in.=$terminator;
}
socket_close($sock);
$in=explode("/",$in);
print_r($in);
- A hozzászóláshoz be kell jelentkezni