시리얼 포트 데이터를 네트워크로 전송하기.
수신 및 송신된 패킷을 서버로 전송할 수 있나요?
네! 드디어 SerialTool을 사용하여 특정 포트의 시리얼 포트 트래픽을 직접 네트워크로 전송할 수 있습니다.
다음과 같은 여러 방법 중에서 선택할 수 있습니다:
-
TCP - SerialTool은 TCP/IP를 통해 기기를 연결하여 시리얼 포트 데이터를 안전하게 서버로 전송합니다. SerialTool과 서버 간에 신뢰성 있고 순서가 정해진 통신을 보장합니다. 이것은 확인 응답이 있는 전화 통화와 유사합니다.
TCP 연결을 평가하기 위해 무료로 사용할 수 있는 PacketSender라는 크로스 플랫폼 소프트웨어를 사용하여 이러한 기능을 테스트할 수 있습니다.
무료 버전에서는 5개의 패킷으로 제한됩니다. -
UDP - SerialTool은 UDP를 사용하여 TCP의 핸드셰이크 복잡성 없이 빠르게 시리얼 데이터를 서버로 전송합니다. 초고속 통신에 적합하며 일부 신뢰성은 속도를 위해 희생됩니다. 빠른 메시지와 유사합니다. 편리하지만 덜 보장됨.
UDP 연결을 평가하기 위해 무료로 사용할 수 있는 PacketSender라는 크로스 플랫폼 소프트웨어를 사용하여 이러한 기능을 테스트할 수 있습니다.
무료 버전에서는 5개의 패킷으로 제한됩니다.
POST 및 GET 호출을 테스트하기 위한 PHP 코드 스니펫이 제공됩니다.
HTTP의 표준 포트는 80이며, HTTPS의 표준 포트는 443입니다.
PRO 버전에서만 지원됩니다.
POST 및 GET 호출을 테스트하기 위한 PHP 코드 스니펫이 제공됩니다.
HTTP의 표준 포트는 80이며, HTTPS의 표준 포트는 443입니다.
PRO 버전에서만 지원됩니다.
PHP code snippet for HTTP/HTTPS POST and GET packet sending
HTTP/HTTPS GET usage from SerialTool
• Select "HTTP/HTTPS Get"
as "Protocol"
• Set "https://yourwebsite.com/receive_test.php?value1=1"
as "Server Address"
• Press [Send Test Packet] button
If the receive_test.php
is loaded and functioning on your server, you should receive a message in the SerialTool message box stating:
#RES>OK - Written: XX bytes in received_packet.txt
HTTP/HTTPS POST usage from SerialTool
• Select "HTTP/HTTPS Post"
as "Protocol"
• Set "https://yourwebsite.com/receive_test.php?myvalue=1"
as "Server Address"
• Press [Send Test Packet] button
If the receive_test.php
is loaded and functioning on your server, you should receive a message in the SerialTool "Connection Test" message box stating:
#RES>OK - Written: XX bytes in received_packet.txt
The result is a file called received_packet.txt located in the same folder where you loaded the PHP script and shoud look like this:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ SerialTool received packets log file
@ Date: 2023-08-23
@ Time: 20:00:00
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Message received from IP [111.110.109.108] at 2023-08-23 20:00:00 [POST DATA 16 bytes] 0001020304050607
Message received from IP [111.110.109.108] at 2023-08-23 20:00:01 [GET DATA] Key: myvalue, Value: 1
PHP script
<?php
/*
____________________________________________________________________________
║ ║
║ Application Name : SerialTool ║
║ Author : SerialTool Dev Team ║
║ IDE: : php ║
║ File Generated : 23/08/2023 ║
║ ║
╚════════════════════════════════════════════════════════════════════════════╝
Usage: path/to/this/file/receive_test.php
Logfile will be on the same directory with the name received_packet.txt
*/
// Set your local time here
date_default_timezone_set("Europe/Rome");
// Prepare Header to HOST Incoming Data
$MessagePayload = "";
$MessagePayload .= " Message received from IP [" . $_SERVER['REMOTE_ADDR']. "] at " . date('Y-m-d H:i:s');
// ----------------------------------------------
// Receive the POST or GET data
// ----------------------------------------------
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// The request method is POST
$MessagePayload .= " [POST DATA ";
$MessagePayload .= strlen(file_get_contents('php://input')) . " bytes] ";
$MessagePayload .= file_get_contents('php://input') . PHP_EOL;;
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
// The request method is GET
$MessagePayload .= " [GET DATA] ";
foreach ($_GET as $key => $value) {
$MessagePayload .= "Key: $key, Value: $value" . PHP_EOL;
}
} else {
// Handle other HTTP methods as needed
$MessagePayload .= " [UNSUPPORTED HTTP METHOD]
";
}
// ----------------------------------------------
// Save Message to file
// ----------------------------------------------
$LOG_Paypload = "";
$LogFilePath = "received_packet.txt";
if (file_exists($LogFilePath) === false){
// Put header
$currentTimestamp = time();
$currentDate = date('Y-m-d', $currentTimestamp); // Format date as 'YYYY-MM-DD'
$currentTime = date('H:i:s', $currentTimestamp); // Format time as 'HH:MM:SS'
$LOG_Paypload .= "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" . PHP_EOL;
$LOG_Paypload .= "@ SerialTool received packets log file" . PHP_EOL;
$LOG_Paypload .= "@ Date: $currentDate" . PHP_EOL;
$LOG_Paypload .= "@ Time: $currentTime" . PHP_EOL;
$LOG_Paypload .= "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" . PHP_EOL ;
}
$logDay = date('d');
$logMonth = date('F');
$logYear = date('Y');
$logTime = date('H:i:s');
// Add Payload
$LOG_Paypload .= $MessagePayload . PHP_EOL;
$iResult = file_put_contents($LogFilePath, $LOG_Paypload, FILE_APPEND);
if ($iResult === false){
echo "#RES>KO
";
}
else{
echo "#RES>OK - Written: " . $iResult . " bytes in " . $LogFilePath . "
";
}
?>