国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于socket監(jiān)聽(tīng)端口接收數(shù)據(jù)的問(wèn)題

miao326200937

現(xiàn)在有一個(gè)需求,有一堆手持設(shè)備會(huì)往指定的IP和端口(服務(wù)器IP)發(fā)送數(shù)據(jù),我要做的工作就是接收這個(gè)端口發(fā)送的數(shù)據(jù),想知道如何才能做到對(duì)面的手持設(shè)備不主動(dòng)斷開(kāi)我就能一直開(kāi)啟監(jiān)聽(tīng)接收數(shù)據(jù)并且返回給他,而且如果此時(shí)有別的設(shè)備在連接也可以連接,我寫(xiě)的代碼可以持續(xù)接收一個(gè)設(shè)備連接上來(lái)的數(shù)據(jù),但是其他的就不能連接了

    $host = "192.168.0.30";
    $port = 3333;
    set_time_limit(0);
    $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("創(chuàng)建socket失??!\n");
    $result = socket_bind($socket, $host, $port) or die("端口綁定失敗!\n");
    $result = socket_listen($socket, 3) or die("端口監(jiān)聽(tīng)失?。n");

    $spawn = socket_accept($socket) or die("接收數(shù)據(jù)失?。n");

    do {
//讀取客戶端發(fā)送的數(shù)據(jù)
    $input = socket_read($spawn, 1024) or die("讀取數(shù)據(jù)失??!\n");

    if(isset($input2)) {
        if($input2 == '# HEA_PACK BK123456') {
            mysql_query("INSERT INTO taskFault (functionEncoding) VALUES ('$input2')");
            continue;
        }
    }

    $input = trim($input);

                                    //額外添加的關(guān)閉命令
                                    if($input == 'exit') {
                                        socket_close($socket);
                                        break;
                                    }
    //收到數(shù)據(jù)處理流程
    if(isset($input)) {

        if($input == '# HEA_PACK BK123456') {
            mysql_query("INSERT INTO taskFault (functionEncoding) VALUES ('$input')");
            continue;
        }

        $array = explode(',', $input);
        //將收到的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)表格中
        $functionEncoding = $array;
        $deviceId = $array;
        $persionId = $array;
        $stationId = $array;
        $operationType = $array;
        $taskNum = $array;
        $taskSer = $array;
        $taskName = $array;
        $i = 1;
        mysql_query("INSERT INTO taskFault (functionEncoding,deviceId,persionId,stationId,operationType,taskNum,taskSer,taskName) VALUES (
        '$functionEncoding','$deviceId','$persionId','$stationId','$operationType','$taskNum','$taskSer','$taskName'
        )");
        if(mysql_affected_rows() != 1) continue;
        //
        if($array == 'TASK_RUN') {
            if($array == 'EQU_APPLY') {
                $sql = "SELECT * FROM maintenancetask limit 0,5";
                $query = mysql_query($sql);
                $count = mysql_affected_rows();
//              $str = null;
                while(!!$task = mysql_fetch_array($query)) {
                    $taskSer = "N".$i;
$str = "#,TASK_RUN,".$array.",".$array.",".$array.",PC_LIST,".$count.",".$taskSer.",".$task.",\\r\\n";
                    socket_write($spawn, $str, strlen ($str)) or die("Could not write output\n");
                    $functionEncoding = "TASK_RUN";
                    $deviceId = $array;
                    $persionId = $array;
                    $stationId = $array;
                    $operationType = "PC_LIST";
                    $taskNum = $count;
                    $taskName = $task;
                    mysql_query("INSERT INTO taskFault (functionEncoding,deviceId,persionId,stationId,operationType,taskNum,taskSer,taskName) VALUES (
                                '$functionEncoding','$deviceId','$persionId','$stationId','$operationType','$taskNum','$taskSer','$taskName'
                                )");
                    $i ++;
                }

            }
        }
    }
    } while(true);

socket方面是個(gè)小白,希望大神幫忙看看

7508 2 0
2個(gè)回答

walkor 打賞

用workerman吧

  • miao326200937 2015-12-01

    workerman能實(shí)現(xiàn)嗎,我下載幾個(gè)例子試了一下,沒(méi)找到大概相似的,我下了聊天的和多人在線游戲那個(gè),有跟我需求差不太多例子嗎,我試試

walkor 打賞

看手冊(cè)上的簡(jiǎn)單示例就行
http://doc3.workerman.net/getting-started/simple-example.html

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??