我尝试使用socket与我的Android客户端通信到php服务器。一切都很好,因为我可以正确地发送和接收消息。现在,我需要根据我从客户端发送的内容建立服务器的操作。特别是有两种可能性,如果我发送:
1)"关闭" - >我想与客户端关闭套接字并与之通信。
2)表格中的其他数据" string" - " string" - " string" - " string" - " string& #34; - >服务器必须将此数据上传到数据库mysql,并通过套接字将成功/失败告知客户端。这是我的问题所需代码的一部分:
if (strcmp(trim($input),"Close") == 0)
{
//remove and close the socket
echo "close";
socket_write($client_socks[$i] , "communication close");
socket_close($client_socks[$i]);
unset($client_socks[$i]);
}else{
//input -> user-lat-long-accurancy-timestamp
$input = trim($input);
$pieces = explode("-", $input);
$user = $pieces[0];
$latitudine = $pieces[1];
$longitudine = $pieces[2];
$accurancy = $pieces[3];
$timestamp = $pieces[4];
$sql22 = "INSERT INTO `positions` (`unique_id`, `timestamp`, `latitudine`, `longitudine`, `accurancy`) VALUES ('".$user."', '".$timestamp."', '".$latitudine."', '".$longitudine."', '".$accurancy."');";
if ($db->query($sql22)){
echo "ok";
socket_write($client_socks[$i] , "Y");
}else {
echo "ko";
socket_write($client_socks[$i] , "N");
}
}
它不起作用,因为我没有收到Y / N消息。这是对发生的事情的一个示例测试:
Client: Server (on terminal)
"test1-test-test-test-test" ----> echo "ok"
NOTHING <---- socket_write -> Y
"test2-test-test-test-test" ----> echo "ko"
NOTHING <---- socket_write -> N
"Close" ----> echo "close"
"YNcommunication close" <---- socket_write ->communication close
请注意,我收到&#34; YN +通讯关闭&#34;并且不仅仅是&#34;沟通关闭&#34;。怎么了? 感谢。