Tryag File Manager
Home
||
Turbo Force
||
B-F Config_Cpanel
Current Path :
/
home
/
egg.eemo.co.kr
/
public_html
/
super5
/
Or
Select Your Path :
Upload File :
New :
File
Dir
/home/egg.eemo.co.kr/public_html/super5/test_sock5.php
<? error_reporting(E_ALL && ~E_NOTICE); /* Allow the script to hang around waiting for connections. */ set_time_limit(0); /* Turn on implicit output flushing so we see what we're getting as it comes in. */ ob_implicit_flush(); $address = '0.0.0.0'; $port = 9090; // create a streaming socket, of type TCP/IP $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1); socket_bind($sock, $address, $port); socket_listen($sock); // create a list of all the clients that will be connected to us.. // add the listening socket to this list $clients = array($sock); include_once("lib.php"); while (true) { // create a copy, so $clients doesn't get modified by socket_select() $read = $clients; $write = null; $except = null; // get a list of all the clients that have data to be read from // if there are no clients with data, go to next iteration if (socket_select($read, $write, $except, 1000) < 1) continue; // check if there is a client trying to connect if (in_array($sock, $read)) { $clients[] = $newsock = socket_accept($sock); //socket_write($newsock, "There are ".(count($clients) - 1)." client(s) connected to the server\n"); echo "now ".(count($clients) - 1)." clients connected\n"; socket_getpeername($newsock, $ip, $port); echo "New client connected: ip : {$ip} , port : {$port}\n"; $key = array_search($sock, $read); unset($read[$key]); } // loop through all the clients that have data to read from foreach ($read as $read_sock) { // read until newline or 1024 bytes // socket_read while show errors when the client is disconnected, so silence the error messages $data = @socket_read($read_sock, 4096); // check if the client is disconnected if ($data == null) { // remove client for $clients array $key = array_search($read_sock, $clients); unset($clients[$key]); echo "client disconnected. sock id : {$read_sock}\n"; socket_close($read_sock); continue; } $data = trim($data); if (!empty($data)) { $db=mysql_connect("localhost","root","web!@#") or die(mysql_error()); mysql_select_db("egg") or die(mysql_error()); echo " receive data : {$data} , from sock id : $read_sock\n"; $json_dec=json_decode($data); //echo $json_dec->TRAID."\n"; //$rs_wifi=RS("select * from wifi_device where vcode='{$json_dec->REPID}' "); $rs_sens=RS("select * from farm_sensor where vcode='{$json_dec->LOGID}' "); $rs_wifi=RS("select * from wifi_device where vcode='{$rs_sens[wifi_code]}' "); $rs_dong=RS("select * from farm_dong_info where no='{$rs_sens[dong_no]}' "); $rs_farm=RS("select * from farm where no='{$rs_sens[farm_no]}' "); //echo "farm_code : ".$rs_wifi[farm_code]."\n"; $query="insert into iot_raw set traid='{$json_dec->TRAID}', repid='{$json_dec->REPID}', logid='{$json_dec->LOGID}', tstamp='{$json_dec->TIME}', bat='{$json_dec->BAT}', rssi='{$json_dec->RSSI}', snr='{$json_dec->SNR}', power='{$json_dec->POWER}', temp='{$json_dec->TEMP}', humi='{$json_dec->HUMI}', adc_data='{$json_dec->ADC}', firm='{$json_dec->FIRM}', err_code='{$json_dec->ERR}', farm_code='{$rs_farm[farm_code]}', farm_no='{$rs_farm[no]}', wifi_code='{$rs_sens[wifi_code]}', wifi_no='{$rs_wifi[no]}', dong_code='{$rs_dong[dong_code]}', dong_no='{$rs_dong[no]}', sensor_code='{$rs_sens[sensor_code]}', sensor_no='{$rs_sens[no]}', sensor_type='{$rs_sens[sensor_type]}', blackout_data='{$json_dec->POWER}', regdate=now() "; //echo $query; $logfile="/home/nonga.eemo.co.kr/public_html/www/sock_log/".date('Y-m-d_H').".txt"; $fp=fopen($logfile,"a+"); $qrystr="\nENCOODE : ".$data. " [".date('Y-m-d H:i:s')."]\nQUERY : \ntraid='{$json_dec->TRAID}',repid='{$json_dec->REPID}',logid='{$json_dec->LOGID}',tstamp='{$json_dec->TIME}',bat='{$json_dec->BAT}',rssi='{$json_dec->RSSI}',snr='{$json_dec->SNR}',power='{$json_dec->POWER}',temp='{$json_dec->TEMP}',humi='{$json_dec->HUMI}',adc_data='{$json_dec->ADC}',firm='{$json_dec->FIRM}',err_code='{$json_dec->ERR}',farm_code='{$rs_farm[farm_code]}',farm_no='{$rs_farm[no]}',wifi_code='{$rs_wifi[wifi_code]}',wifi_no='{$rs_wifi[no]}',dong_code='{$rs_dong[dong_code]}',dong_no='{$rs_dong[no]}',sensor_code='{$rs_sens[sensor_code]}',sensor_no='{$rs_sens[no]}',sensor_type='{$rs_sens[sensor_type]}',blackout_data='{$json_dec->POWER}'\n\n"; fwrite($fp,$qrystr); fclose($fp); if($json_dec->TRAID) { mysql_query($query) or die(mysql_error()); $is_rs=RS("select * from iot_now where farm_no='{$rs_farm[no]}' and dong_no='{$rs_dong[no]}' "); if($rs_sens[sensor_type]==1) { $query="update farm_sensor set now_temper_value='{$json_dec->TEMP}', now_humi_value='{$json_dec->HUMI}', sens_uptime=now() where no='{$rs_sens[no]}' "; mysql_query($query) or die(mysql_error()); } else { $query="update farm_sensor set now_anal_value='{$json_dec->ADC}', sens_uptime=now() where no='{$rs_sens[no]}' "; mysql_query($query) or die(mysql_error()); } } $rst=array(); $rst['TRAID']=$json_dec->TRAID; $rst['MSG']="OK"; $enc=json_encode($rst); // do sth.. // send some message to listening socket $response_data=$enc; socket_write($read_sock, $response_data, strlen($response_data)); // send this to all the clients in the $clients array (except the first one, which is a listening socket) foreach ($clients as $send_sock) { if ($send_sock == $sock) continue; /*$response_data2="abcdef"; socket_write($send_sock, $response_data2, strlen($response_data2)); echo "we send sock id is {$send_sock}, message : {$response_data2} \n"; */ } // end of broadcast foreach mysql_close($db); //socket_close($read_sock); } } // end of reading foreach } // close the listening socket socket_close($sock); ?>