Bestand versturen naar TCP/IP port in webbrowser

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hi all,

Ik zou graag willen weten of het volgende mogelijk is:

Korte uitleg van het geheel is als volgt: Op dit moment hebben we de mogelijkheid om een stuk hardware de configureren via ethernet. Een webservertje op een ARM9-based device serveert dit geheel netjes. In het verleden gebeurde dit via RS232. Het doel is natuurlijk om de hele configuratie webbased te maken, zodat een klant geen software hoeft te installeren.

Nu bestaat er de mogelijkheid via Hyperterminal oid een parameterlijst te verzenden naar een specifieke poort op de webserver. Deze wordt dan meteen als parameterlist gehandled. Maar hiervoor is er dus software (hyperterminal) nodig en dat is in principe niet wenselijk.

Mijn vraag is dus, of het mogelijk is om web-based - in javascript of anders - dit verzenden van data naar een specifieke poort mogelijk is. Een eventuele uitleg over hoe dat in z'n werk gaat is natuurlijk ook meer dan welkom, maar met een hint in de goede richting kan ik hier natuurlijk zelf ook naar opzoek.

Ik rol sinds kort pas in deze materie rond. Vandaar deze vraag, voor ik opzoek ga naar oplossingen die niet bestaan/niet mogelijk zijn.

Bij voorbaat dank!

Verwijderd

Ik weet niet precies of dit is wat je bedoelt, maar je zou eens kunnen kijken wat je kunt aanvangen met curl

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:20

MueR

Admin Tweakers Discord

is niet lief

Ja. De webserver luistert over het algemeen enkel naar poort 80 en 443. Dus die poorten zijn te gebruiken voor je :+

Maar indien je met scripttalen als PHP iets wil gaan doen, zou je kunnen kijken naar cURL of de diverse socket functions.

Anyone who gets in between me and my morning coffee should be insecure.


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Vanuit de browser of javascript zelf kun je geen data naar een RS232 port sturen.

Maar heeft de webserver op de ARM9 dan geen support voor CGI of zo? Je zou eventueel een virtuele seriele port kunnen aanmaken en deze vanuit perl (webserver) kunnen aansturen. Het process welke nu op de fysieke seriele poort luistert, moet je dan naar de virtuele fysieke seriele poort laten luisteren.

Op die manier kun je vanaf je hardware een seriele verbinding naar 'jezelf' emuleren.

Maar het is erg lastig om met de beperkte informatie welke je hebt gegeven een goed antwoord te geven.
Geef anders even aan met welke hardware je werkt. Zeggen dat je een ARM9 based device hebt zegt vrij weinig. Als ik jouw vertel dat in een Intel Core i7 systeem heb, weet jij niet of ik Windows, Linux of een ander OS draai.

If it isn't broken, fix it until it is..


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Is het idee niet gewoon dat de klant die data kan versturen naar de webserver vanuit z'n browser? Dingen als PHP en cURL hebben er dus maar weinig mee te maken.

@Strakke-Wappie: in feite kun je vanuit je browser alleen HTTP requests initiëren, tenzij je bijv. Java Applets of Flash gaat gebruiken. Als het mogelijk is om die data in een HTTP request te verpakken zou ik dat doen, dan kun je vanuit javascript gewoon een XMLHTTPRequest doen met de benodigde data als POST content. Zo niet, dan zul je een Flash app of Java applet moeten bouwen die de data stuurt (die je weer aan kunt spreken vanuit javascript), wat weer vereist dat de klant hier de benodigde plugins voor heeft, maar meestal is dat wel het geval.

[ Voor 4% gewijzigd door .oisyn op 24-09-2009 12:13 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
De server luistert ook op een andere poortrange dan de standaard poorten, zeg poort 1234. Misschien had ik de term webserver niet moeten gebruiken, maar hier wordt'ie gewoon hoofdzakelijk voor gebruikt.
In hyperterminal open je dus een verbinding op TCP/IP; IP 123.456.789.123; poort 1234, en verstuurd dan het betreffende bestand, dat bij ontvangst op de server meteen geprocesserd wordt.

Heeft dus verder niks met RS232 te maken!

Als ik inderdaad alleen XMLHTTPRequests kan initiëren, dus alleen naar poort 80 kan sturen, zal ik het probleem anders moeten tackelen. Java applet zou dan wel een mogelijkheid zijn, maar waarschijnlijk is het dan makkelijker om er een ftp server naast te draaien en daar de bestanden naar te uploaden.

Nadeel is dan, dat het bestaande process van parameterlist-processing weer op de schop moet.
En dat wilde ik natuurlijk stiekem vermijden. :X

[ Voor 11% gewijzigd door Verwijderd op 24-09-2009 12:46 ]


Verwijderd

Het zal wel aan mij liggen, maar ik snap het nog steeds niet helemaal.

Draai je nu op een andere poort dan 80 een webservertje? zoiets als http://www.bla.com:2222 ?

En je wilt bestanden uploaden naar dat ding? Dan zou ik gewoon uploadify oid gebruiken. Maar ik zal het wel niet helemaal hebben begrepen. :)

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Je moet even onderscheid maken tussen poorten en protocollen. Op welke poort iets draait maakt in principe niet zoveel uit (behalve voor de herkenbaarheid en het gemak voor menselijke gebruikers). Welk protocol er op een poort gesproken wordt wel.

Je kan HTTP (het protocol) prima via een willekeurige poort (anders dan de standaard poort 80) laten lopen. Het blijft echter HTTP. Dus als jij op poort 1234 iets hebt draaien dat het HTTP protocol spreekt, dan kun je de standaardfaciliteiten van je browser/JavaScript, zoals XMLHTTPRequest, gebruiken, anders niet.

Wat je kan doen als er géén HTTP wordt gesproken op die poort, is "gewoon" een webserver op poort 80 draaien met iets van PHP, Java, ASP of CGI en daar (server-side) iets bouwen dat in reactie op bijv. een file upload de inhoud van de file gaat omzetten naar parameters voor het device en/of intern weer een non-HTTP verbinding maakt met poort 1234.

[ Voor 3% gewijzigd door Herko_ter_Horst op 24-09-2009 12:56 ]

"Any sufficiently advanced technology is indistinguishable from magic."


Verwijderd

Topicstarter
Herko_ter_Horst schreef op donderdag 24 september 2009 @ 12:53:
Je moet even onderscheid maken tussen poorten en protocollen. Op welke poort iets draait maakt in principe niet zoveel uit. Welk protocol er op een poort gesproken wordt wel.

Wat je kan doen als er géén HTTP wordt gesproken op die poort, is "gewoon" een webserver op poort 80 draaien met iets van PHP, Java, ASP of CGI en daar (server-side) iets bouwen dat in reactie op bijv. een file upload de inhoud van de file gaat omzetten naar parameters voor het device en/of intern weer een non-HTTP verbinding maakt met poort 1234.
Thnx, dit helpt me in ieder geval een eindje verder. Ik was me niet bewust van het feit dat ik intern een verbinding met een andere poort kon opzetten. Dit is dus waar mijn kennis vooralsnog tekort schiet en ik jullie hulp kon gebruiken. Bedankt, ik ga ermee aan de slag!
Pagina: 1