Megválaszolatlan hozzászólások | Aktív témák Pontos idő: szer. okt. 09, 2024 5:32



Hozzászólás a témához  [ 6 hozzászólás ] 
Portkezelés PHP-vel 
Szerző Üzenet
arany tag
Avatar

Csatlakozott: hétf. ápr. 26, 2004 14:57
Hozzászólások: 470
Hozzászólás 
Hardhead írta:
Hali!
Hasonlóra készülök csak én soros porton szeretnék kommunikálni, PHP-vel meg mással is. Szerintem a a feladat megoldható 2 lépésben.
Attól, hogy valami rendszerezköz még hozzáférhető. Ha Te vagy a root, vagy ismered akkor nincs gond :).
Én azt tervezem, hogy írok egy "demont" ami megnyitja a soros portot és figyel egy adott porton.
Mivel a PHP ismeri a socket kezelést így ezen a porton leresztűl adhatok utasításokat amit a demon felismer.
Egyszerűbb esetben csak továbbítja oda/vissza a byteokat. Így az eredeti problémát (portkezelés) egy PHP-ból megoldható
problémára (socket kezeés) vezettük vissza ami már megoldható.
A fentiek feltételeznek némi C ill. hálózati ismereteket, de ezekről bőven találni a neten infót.
Üdv.:
Pet

Elnézést, akkor pontosítok: kizárólag fsockopen() hasznélatával nem lehetséges PHP-n keresztűl elérni a gép LPT/soros (sörös :) ) portját. Ehhez szükséges egy program (jó legyen demon - már megint windows-os fejjel gondolkodtam), ami fogadja a szerver (engedélyezett) portjára az adatokat.

A másik megoldás az fopen() használatával történik.

Előző hozzászólásomban azt a logikát követtem, hogy:
1. Az fsockopenn-nel Internet vagy Unix domain socket nyitható
2. Az fsockopen-nel nem nyitható meg a gép LPT portja
3. Szükséges egy program mely a PHP és az LPT port között közvetít.
4. Ahhoz hogy elérd az LPT portot rendszergazdai jogok kellenek (Kedves Izolcsi - ezúton kérek elnézést hogy nem feltételeztem rólad hogy neked van ilyen, vagy ismered a rendszergazdát)

Summa, summárum: egyről beszélünk, csak én a kicsit körülményesebb módot választottam (meg Windows-os fejjel gondolkodtam-amiért külön elnézést...).

Némi adalék a témához:

Az fopen() ide vonatkozó szakasza
Kód:
 jared at dctkc dot com
22-Apr-2002 10:33
<?php
// HOW TO USE PHP TO WRITE TO YOUR SERIAL PORT: TWO METHODS
$serproxy=true;
if ($serproxy) {
   // Use this code in conjunction with SERPROXY.EXE
   // (http://www.lspace.nildram.co.uk/freeware.html)
   // which converts a Serial stream to a TCP/IP stream
   $fp = fsockopen ("localhost", 5331, $errno, $errstr, 30);
   if (!$fp) {
       echo "$errstr ($errno)";
   } else {
       $e = chr(27);
       $string  = $e . "A" . $e . "H300";
       $string .= $e . "V100" . $e . "XL1SATO";
       $string .= $e . "Q1" . $e . "Z";
       echo $string;
       fputs ($fp, $string );
       fclose ($fp);
   }
} elseif ($com1) {
   // Use this code to write directly to the COM1 serial port
   // First, you want to set the mode of the port. You need to set
   // it only once; it will remain the same until you reboot.
   // Note: the backticks on the following line will execute the
   // DOS 'mode' command from within PHP
   `mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off`;
   $fp = fopen ("COM1:", "w+");
   if (!$fp) {
       echo "Uh-oh. Port not opened.";
   } else {
       $e = chr(27);
       $string  = $e . "A" . $e . "H300";
       $string .= $e . "V100" . $e . "XL1SATO";
       $string .= $e . "Q1" . $e . "Z";
       echo $string;
       fputs ($fp, $string );
       fclose ($fp);
   }
}
?>

(Forrás: http://hu2.php.net/fopen)

http://www.jawed.com/camera/ - Internetről mozgatható webkamera. A gép soros portját használja!

További minden jót!

PS: Méghogy gyökér (root) lennék? Kikérem magamnak! :D


csüt. dec. 09, 2004 2:35
Profil Privát üzenet küldése
vas-tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 8
Hozzászólás 
Hali!
Hasonlóra készülök csak én soros porton szeretnék kommunikálni, PHP-vel meg mással is. Szerintem a a feladat megoldható 2 lépésben.
Attól, hogy valami rendszerezköz még hozzáférhető. Ha Te vagy a root, vagy ismered akkor nincs gond :).
Én azt tervezem, hogy írok egy "demont" ami megnyitja a soros portot és figyel egy adott porton.
Mivel a PHP ismeri a socket kezelést így ezen a porton leresztűl adhatok utasításokat amit a demon felismer.
Egyszerűbb esetben csak továbbítja oda/vissza a byteokat. Így az eredeti problémát (portkezelés) egy PHP-ból megoldható
problémára (socket kezeés) vezettük vissza ami már megoldható.
A fentiek feltételeznek némi C ill. hálózati ismereteket, de ezekről bőven találni a neten infót.
Üdv.:
Pet


kedd dec. 07, 2004 14:51
Profil Privát üzenet küldése ICQ
arany tag
Avatar

Csatlakozott: hétf. ápr. 26, 2004 14:57
Hozzászólások: 470
Hozzászólás 
Bocs, lehet hogy láma válasz lesz, de előre is elnézést kérek. :)

A szerveren lévő párhuzamos (LPT) portját PHP-n keresztűl közvetlenűl szerintem nemigen lehet irányítani (ugyanis rendszereszköz - ehhez pedig nem hinném hogy csak úgy kivűlről hozzáférhetnél)

Az fsockopen-nel Internet vagy Unix domain socket megnyitását tehetjük meg, nem pedig a szerver LPT portjának megnyitását. (Az a port nem az a port!) De az ötlet nem rossz, ugyanis: ha tied a szerver, létrehozol egy programot (C++-ban, Visual Basicben, Delphiben, satöbbi...), ami az egyes TCP (UDP) portokról érkező csomagokat továbbküldi a szerver LPT portjának. Ezután be kell állítani a szerveren, hogy azt a bizonyos TCP (UDP) portról fogadó csomagokat engedje át. Ezután fsockopen-nel már küldhetsz is arra a TCP (UDP) portra adatot.

Ha valami hülyeséget irtam volna mégegyszer bocs :)


vas. jún. 06, 2004 22:19
Profil Privát üzenet küldése
vas-tag

Csatlakozott: vas. jún. 06, 2004 12:59
Hozzászólások: 3
Hozzászólás 
http://hu.php.net/fsockopen


vas. jún. 06, 2004 13:00
Profil Privát üzenet küldése Honlap
ezüst tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 99
Tartózkodási hely: Paks
Hozzászólás Portkezelés PHP-vel
Üdv!

Azt szeretném kérdezni, hogy a szerveren levő portokat lehet-e bizgetni PHP-vel. Tehát van egy szerver, és a párhuzamos portján egy spéci dolog, ami vezérelnem kellene. Ez megoldható valahogy?

Üdv:
Lzolcsi


kedd máj. 04, 2004 15:55
Profil Privát üzenet küldése YIM
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 6 hozzászólás ] 

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 3 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség