PHP實現(xiàn)連接設(shè)備、通訊和發(fā)送命令的方法_第1頁
PHP實現(xiàn)連接設(shè)備、通訊和發(fā)送命令的方法_第2頁
PHP實現(xiàn)連接設(shè)備、通訊和發(fā)送命令的方法_第3頁
PHP實現(xiàn)連接設(shè)備、通訊和發(fā)送命令的方法_第4頁
PHP實現(xiàn)連接設(shè)備、通訊和發(fā)送命令的方法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、本文實例講述了PHP實現(xiàn)連接設(shè)備、通訊和發(fā)送命令的方法。分享給大家供大家參考。具體如下:開發(fā)的BS架構(gòu)的軟件(PHP),需要跟設(shè)備進(jìn)行通訊,在此記錄一下,歡迎各位指正:1. 采用php socket技術(shù)使用TCP/IP連接設(shè)備參數(shù)$service_port 連接端口參數(shù)$address 發(fā)送IP地址參數(shù)$in 發(fā)送命令?123456789101112131415161718192021222324252627282930function Send_socket_connect($service_port, $address, $in) /創(chuàng)建 TCP/IP socket$socket = so

2、cket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("could not create socket!");/設(shè)置超時時間$timeout = 2;$time = time();/設(shè)置非阻塞模式socket_set_nonblock($socket);/超時判斷while (!socket_connect($socket, $address, $service_port) $err = socket_last_error($socket);/ 連接成功,跳出循環(huán)if ($err = 10056) break;/連接失敗,判斷超

3、時時間,停止if (time() - $time) >= $timeout) socket_close($socket);print('網(wǎng)絡(luò)異常,請檢查網(wǎng)絡(luò)連接!');exit();/ 刷新頻率(250毫秒)usleep(250000);/設(shè)置阻塞模式socket_set_block($socket);/發(fā)送命令到設(shè)備socket_write($socket, $in, strlen($in);/關(guān)閉連接socket_close($socket);Send_socker_xdcoder $buffer為返回值?1234567891011121314151617181920

4、212223242526272829303132333435function Send_socket_xdcoder($service_port, $address, $in) /創(chuàng)建 TCP/IP socket$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("could not create socket!");/設(shè)置超時時間$timeout = 2;$time = time();/設(shè)置非阻塞模式socket_set_nonblock($socket);/超時判斷while (!socket_co

5、nnect($socket, $address, $service_port) $err = socket_last_error($socket);/ 連接成功if ($err = 10056) break;/連接失敗,判斷超時時間,停止if (time() - $time) >= $timeout) socket_close($socket);echo "<script>alert('網(wǎng)絡(luò)異常,請檢查網(wǎng)絡(luò)連接!');</script>"exit();/ 刷新頻率(250毫秒)usleep(250000);/設(shè)置阻塞模式sock

6、et_set_block($socket);/發(fā)送命令到設(shè)備socket_write($socket, $in, strlen($in);/接收設(shè)備命令返回數(shù)據(jù)$buffer = socket_read($socket, 1024, PHP_NORMAL_READ);/關(guān)閉連接socket_close($socket);/輸出返回值return $buffer;2. 采用php socket技術(shù)使用UDP協(xié)議連接設(shè)備,實現(xiàn)通訊和發(fā)送命令參數(shù)$service_port 連接端口參數(shù)$address 發(fā)送IP地址參數(shù)$in 發(fā)送命令?123456789101112function Send_soc

7、ket_connect_udp($service_port, $address, $in) /采用php socket技術(shù)使用UDP協(xié)議連接設(shè)備$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 2, "usec" => 0);/發(fā)送命令socket_sendto($socket, $in, strlen($in), 0, $address, $servi

8、ce_port);socket_recvfrom($socket, $buffer, 1024, MSG_WAITALL, $address, $service_port);/關(guān)閉連接if (empty($buffer) echo "<script>alert('網(wǎng)絡(luò)異常,請檢查網(wǎng)絡(luò)連接!');</script>"Send_socket_xdcoder_udp $buffer 為返回值?123456789101112131415function Send_socket_xdcoder_udp($service_port, $addre

9、ss, $in) /采用php socket技術(shù)使用UDP協(xié)議連接設(shè)備$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 2, "usec" => 0);/發(fā)送命令socket_sendto($socket, $in, strlen($in), 0, $address, $service_port);socket_recvfrom($socket, $bu

10、ffer, 1024, MSG_WAITALL, $address, $service_port);/關(guān)閉連接socket_close($socket);if (!empty($buffer) return $buffer; else echo "<script>alert('網(wǎng)絡(luò)異常,請檢查網(wǎng)絡(luò)連接!');</script>"3. 采用RS232串口技術(shù)連接設(shè)備,實現(xiàn)通訊和發(fā)送命令參數(shù)$com 串口號參數(shù)$baudratr 波特率參數(shù)$in 發(fā)送命令?1234567891011121314151617function rs232_c

11、onnect($com, $baudrate, $in) set_time_limit(10);/使用 'windows下設(shè)置竄口參數(shù)'exec("mode " . $com . " BAUD=" . $baudrate . " PARITY=n DATA=8 STOP=1 odsr=off");/ "打開端口串口$com"$f = fopen($com, 'w+');/判斷串口是否正常打開if (!$f) /echo "<script>alert('Error when open $com!');</script>"die("Error when open $com");/向串口發(fā)送數(shù)據(jù);fwrite($f, $in);/關(guān)閉端口 fclose($f);/串口操作結(jié)束還有一個關(guān)于命令16進(jìn)制轉(zhuǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論