Avatar billede backupmand Nybegynder
07. juni 2004 - 16:04 Der er 25 kommentarer og
1 løsning

Hvilket api/hvilken klasse til at opdage hardware på lokalnet?

Hejsa,
Jeg har en del enheder på mit lokalnet, herunder en routerm en switch, en printserver. ...

I DatagramSocket klassen står der :
"This class implements client sockets (also called just "sockets"). A socket is an endpoint for communication between two machines."

Men der menes vel en fjern maskine? Der kan ikke bruges dette api til at finde enheder på lokalnettet?

For at printe ud til eks. en usb printer kunne man bruge javax.usb, men hvad hvis jeg ønskede at kommunikere med min switch eller min router, fra java?

nogle tanker?
Avatar billede arne_v Ekspert
07. juni 2004 - 16:09 #1
Jeg tvivler på at det er nemt at detecte hardware på nettet. Sådanne boxe
vil vel ikke annoncere deres tilstedeværelse.

En router har en IP adresse og er derfor til at få fat på.

Hvis den har web interface kan du snakke via (Http)URLConnection.

Hvis den har telnet interface kan du snakke via almindelig Socket.

En switch jar ikke en IP adresse så det virker ikke.

En seriel ledning ned til boxen kan man bruge via Java COMM API.
Avatar billede backupmand Nybegynder
07. juni 2004 - 16:14 #2
det var da nogle vink i en retning af noget der ligner .... jeg må lige vende tilbage når jeg har gransket COMM API'et som jeg ikke lige havde tænkt på
Avatar billede arne_v Ekspert
07. juni 2004 - 16:20 #3
COMM API er til serielle porte (og vistnok også parallelle porte).

Og nogle routere kan tilgåes via serielt kabel.
Avatar billede backupmand Nybegynder
08. juni 2004 - 15:55 #4
Jeg tror ikke jeg kan bruge comm api'et til så meget.
Avatar billede backupmand Nybegynder
08. juni 2004 - 16:06 #5
Det er fordi jeg har en enhed, der er tilsluttet mit netkort i pci porten. Det er den enhed, der er tilsluttet det netkort (en switch og derefter en printserver på min switch)  jeg gerne vil have fat i. Jeg ser kun muligheden at få fat i Com1-4 + lpt1-2 gennem commapi. Er det ikke rigtigt?
Avatar billede arne_v Ekspert
08. juni 2004 - 16:12 #6
COMM API er kun til seriel og parallel kommunikation (det skrev jeg også).

Switchen er svær at få fat i fordi den er nede på ethernet laget.

Printeren derimod er nok nemmere at få fat i.

Snakker du LPD eller raw telnet med den ?

Understøtter printeren evt. SNMP ?
Avatar billede backupmand Nybegynder
08. juni 2004 - 16:39 #7
De sidste 2 spørgsmål har jeg svært ved at svare på.
Det er en printerserver!! Jeg skal gennem printerserveren for at få fat i enheden (tror jeg), som så enten befinder sig på LPT1, 2 eller 3. Jeg kan ikke få fat i printerserveren over tcp/ip, selvom jeg har givet den en ip adresse. Admin programmet siger simpelthen "no response". Hovedopgaven for mig er, at finde printserveren på nettet. Telnet til den virker heller ikke. Den har en default adresse 1.1.1.1 og kører på port 23. LPD ved jeg ikke hvad er.

Jeg er igang med at finde ud af, om jeg kan sætte printserveren op gennem et andet program (printq), men det er lidt besværligt. Jeg forsøger også at arbejde med en løsning der hedder at jeg tilslutter en printer til usb og en anden til parallel.
Avatar billede arne_v Ekspert
08. juni 2004 - 23:04 #8
Svær opgave tror jeg.

Jeg kan godt forklare hvad LPD er, men det tror jeg ikke hjælper dig.

Hvis den har IP 1.1.1.1 skal du have sat en PC op med en IP på det
netværk ellers sender en router dig til langbortistan.
Avatar billede backupmand Nybegynder
08. juni 2004 - 23:08 #9
Jeg er gået videre med min usb løsning nu og kigger bla. på javax.usb api'et, men jeg skal bruge den der jsr80.jar fil ... ved du hvor den findes? Jeg kan simpelthen ikke finde den.
Avatar billede backupmand Nybegynder
09. juni 2004 - 00:12 #11
Jeg var for doven til at kigge på source-koden, som jeg downloadede. Det skal ant'es før jeg får min jar. Jeg havde været inde at kigge på de sider før!
Avatar billede arne_v Ekspert
09. juni 2004 - 09:02 #12
Jeg tror at du bliver nødt til at builde selv.
Avatar billede backupmand Nybegynder
09. juni 2004 - 16:55 #13
Det gjorde jeg så og så fik jeg min jsr80.jar .. jeg har også downloadet den platformuafhængige version og fin min jsr80_ri.jar. Så har jeg prøvet at køre testprogrammet og så får jeg en :
Exception in thread "main" java.lang.RuntimeException: Error : The UsbServices i
mplementation class com.ibm.jusb.os.windows.WindowsUsbServices was found found :
com.ibm.jusb.os.windows.WindowsUsbServices
        at ShowTopology.getVirtualRootUsbHub(ShowTopology.java:58)
        at DefaultControlPipe.main(DefaultControlPipe.java:2

Den kan ikke finde WindowsUsbServices og den klasse kan jeg heller ikke finde
Avatar billede arne_v Ekspert
09. juni 2004 - 18:15 #14
Avatar billede backupmand Nybegynder
09. juni 2004 - 18:21 #15
Der var den jo!
Avatar billede backupmand Nybegynder
10. juni 2004 - 13:29 #16
Noglegange kan jeg blive rød i hovedet! Jeg tror desværre ikke jeg kommer til at printe til usb porten fra java (jeg hører gerne fra nogle der har gjort det) .. på sourceforge er det jo en (pre)alpha release af windows api'et .. derudover fandt jeg flg. på nettet:
"
You need to get the Windows DDK, and then you should be able to build the
DLL.  Note that Windoze support is currently limited to viewing the
topology ONLY.  You CANNOT actually talk to any devices and there is no
hotplug support.  So unless you want to help develop the implementation,
it is not much use... "

Jeg fik nemlig sådan en fejl her:

Exception in thread "main" java.lang.RuntimeException: Error : Error while
loadi
ng shared library JavaxUsb.dll : no JavaxUsb in java.library.path
        at ShowTopology.getVirtualRootUsbHub(ShowTopology.java:78)
        at DefaultControlPipe.main(DefaultControlPipe.java:26)

Jeg fik alle mine filer til at builde med ant, jeg fik også mine jars, inkluderede dem i path, men der er ingen dll fil, som det ser ud til at den gerne vil have her.
Avatar billede backupmand Nybegynder
10. juni 2004 - 13:31 #17
Hvis jeg vil tilslutte mere end 1 printer til parrallel porte tror jeg, jeg må have fat i et af de der pci kort med 2 lpt porte på (hvis man kan få det).
Avatar billede backupmand Nybegynder
10. juni 2004 - 17:03 #18
hmm jeg fik printet ud til min printer via javax.print api'et. ... nu er mit problem bare, at jeg skal have printet ud i absolut øverste venstre hjørne og ikke det default sted den starter (skal have brudt margin ned)
Avatar billede arne_v Ekspert
11. juni 2004 - 22:30 #19
"You need to get the Windows DDK" => man skal have Microsoft Visual C++ og deres
DDK (Diver Development Kit).
Avatar billede arne_v Ekspert
11. juni 2004 - 22:30 #20
javax.print kan jeg ikke hælpe meget med
Avatar billede backupmand Nybegynder
11. juni 2004 - 23:11 #21
Det må da være muligt at rykke margen til venstre.
Kan man downloade DDK?
Avatar billede arne_v Ekspert
14. juni 2004 - 20:45 #22
Jeg er sikker på at man kan flytte margen. Jeg ved bare ikke hvordan.

SOm jeg læser http://www.microsoft.com/whdc/devtools/ddk/default.mspx
kan DDK ikke downloades men kommer med MSDN.
Avatar billede backupmand Nybegynder
14. juni 2004 - 22:37 #23
OK! Bare kom med et svar!
Avatar billede arne_v Ekspert
14. juni 2004 - 22:39 #24
ok
Avatar billede arne_v Ekspert
14. juni 2004 - 22:40 #25
Som du nok er ved at have fundet ud af så er Java ikke det bedste sprog til
så hardware nære ting.

:-)
Avatar billede backupmand Nybegynder
14. juni 2004 - 22:55 #26
Ja det har jeg fundet ud af!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester