これは私のPHPクライアントコードです:
<?php
$service_port = 5310;
$address = gethostbyname('192.168.40.100');
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false)
echo "socket_create() falló: razón: " . socket_strerror(socket_last_error()) . "<br />";
else
{
$result = socket_connect($socket, $address, $service_port);
if ($result === false)
echo "socket_connect() falló.\nRazón: ($result) " . socket_strerror(socket_last_error($socket)) . "<br />";
else
{
$in = "Envio esto: HOLA";
$out = 'RESPONSE: ';
echo "ANTES: " . date("H:i:s") . "<br />"; // #1
socket_write($socket, $in, strlen($in));
echo "DESPUÉS: " . date("H:i:s") . "<br />"; // #2 Same time as #1
// Leer/imprimir respuesta
while ($out = socket_read($socket, 2048))
echo "RESPONSE: " . date("H:i:s") . " " . $out; // #3 Same time as #2
}
}
// Cerramos socket
socket_close($socket);
echo "BANANA: " . date("H:i:s") . "<br />"; // Always run when I got disconected from server
?>
へのアクセス権はありませんがserver code
、少し読みました。書き込みがあり、次のVB.net
ようなものを使用していますClient.socket.send()
。応答があり、サーバーが私を切断したときにそれらのエコーがよく印刷されているのがわかります。そうでない場合、php がハングします。どこにもいない。
EDITサーバーに
別のメッセージを追加socket_write()
して、接続を解除してくださいが、2番目のメッセージがサーバーに送信されていません。
<?php
$service_port = 5310;
$address = gethostbyname('192.168.40.100');
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false)
echo "socket_create() falló: razón: " . socket_strerror(socket_last_error()) . "<br />";
else
{
$result = socket_connect($socket, $address, $service_port);
if ($result === false)
echo "socket_connect() falló.\nRazón: (" . $result . ") " . socket_strerror(socket_last_error($socket)) . "<br />";
else
{
$in = "Envio esto: HOLA";
$out = '';
$response = "RESPONSE: ";
echo "PRIMERA;";
socket_write($socket, $in, strlen($in));
while ($out = socket_read($socket, 2048))
$response .= $out;
echo $response . ";SEGUNDA;";
$in = "close";
$out = '';
$response = "";
socket_write($socket, $in, strlen($in));
while ($out = socket_read($socket, 2048))
$response .= $out;
echo $response . " " . date("H:i:s");
}
}
socket_close($socket);
?>