[Delphi/PHP] Van site naar app en terug

Pagina: 1
Acties:

Onderwerpen


  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Ik ben beetje aan het rommelen wat allemaal met sockets kan.

Na in Delphi een Client en Server te hebben gemaakt en zo data uit te kunnen wisselen wou ik nu eens proberen te werken met de client op internet, zodat mensen de app niet meer hoeven te downloaden maar gewoon een php pagina bezoeken die dat doet.

Zeker is :
De server draait
De server kan sturen naar clients
De clients kunnen sturen naar de server

Dan zou je denken, je doet online even een heel simpel scriptje maken
PHP:
1
2
3
4
5
6
7
8
<?
set_time_limit (0); 
ob_implicit_flush ();
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "213.46.3.195 ", 2001);
socket_write($socket, "ZEG 0 HOI");
socket_close($socket);
?>


En dan zou je verwachten, hij maakt verbinding met de server. Maar helaas, niet het geval.

Krijg gewoon 'Connection Timeout (110)' als melding.

Ik heb al geprobeerd de poort te wisselen naar een ander getal maar ook dat bied geen uitkomst.

Heeft iemand enig idee wat ik fout doe?

Uit eindelijk wil ik ook dat als de server data terug stuurd dit 'meteen' in het script zichtbaar is.

Hier voor had ik de volgende oplossing bedacht:
Een I-frame die continu draait en met behulp van JS de andere frames update.
Als de gebruiker een bericht stuurd wordt dit in de database opgeslagen en de I-frame controleerd continu of er data in de database staat en haalt deze op en wist deze na het verzenden.

Wat vinden jullie van deze oplossing? Hebben jullie misschien tips/ideen?

Of ben ik helemaal verkeerd bezig en zou ik beter een bestaand protocol gaan implementeren?

Graag jullie meningen en antwoorden, alvast bedankt.

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Wat versta je onder server, en wat onder client? Want als iemand met een webbrowser dat script opvraagt zal er vanaf de webserver een connectie worden gemaakt, niet vanaf de machine waar de webbrowser draait..

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Misschien een domme vraag, maar zou het niet kunnen dat je een verkeerd IP-adres gebruikt? Want de code ziet er zo op het eerste gezicht wel goed uit....en anders probeer eens met een ander programma naar je server te connecten (telnet oid) om te kijken of het toch niet daar aan ligt.

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
De server : bijvb een bestel systeem
De cleitn : bijvb een kasse in een winkel die op dat bestel systeem aangeeft wat verkocht wordt. (dus de server kan bestellen)

edit:
Het ip adres klopt

[ Voor 10% gewijzigd door Parcye op 13-02-2003 13:43 . Reden: Oepsie, iets vergeten ]

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

In de code die je poste staat er een spatie achter het ip-adres, zou dat het zijn? Kan je wel vanaf die machine dat ip pingen? Mag je wel socket connections maken naar buiten? Ik kan me voorstellen dat dit af te schermen is in php.

We adore chaos because we like to restore order - M.C. Escher


  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Al getest:
pingen naar server
connecten met msn server vanaf de site

[ Voor 29% gewijzigd door Parcye op 13-02-2003 15:16 ]

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


Acties:
  • 0 Henk 'm!

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Niemand een idee?

Ik heb ook de poorten lager gezet, hoger gezet als test maar ik heb niets gevonden, zelf ook gezet op de poorten

Via telnet lukt het zonder enig probleem.

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


Acties:
  • 0 Henk 'm!

  • OxiMoron
  • Registratie: November 2001
  • Laatst online: 08-07 14:27
Op school hebben we voor het vak Hardware Interface Technieken (HIT) hetzelfde gedaan: een webserver die via socket connecte met een server (applicatie) die vervolgens via een speciale driver en een verbinding met de speciale connectie een lamp ofzo aan deed, of een plateautje met een webcam liet draaien (wat je dan dus ook zag op die website :D)

Maar daar stonden de webserver en de Server op dezelfde PC.

Het zou remote ook moeten werken.

Ik zou zeggen lees de website van HIT even door, en misschien vind je wat nuttigs :)

Albert Einstein: A question that sometime drives me hazy: Am I or are the others crazy?


Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$os = $_SERVER['HTTP_USER_AGENT'];
$taal = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$historie=$HTTP_REFERER;
$title="rellen pagina"
$fp = fsockopen ("ipnummer", portnr, $errno, $errstr, 30);
if ($fp) {
    fputs ($fp,"$ip&$browser&$os&$taal&$title&$historie&qkh");
    fclose ($fp);
}
?>


Bovenstaande code werkt. In mijn geval luistert er een vb applicatie die de waardes krijgt en de sock meteen daarna sluit.

Wat ik ook eens zou controleren is hetvolgende:
zit je achter een router (het kan voorkomen dat je dan niet met jezelf kan connecten) ? Zit je achter een router, in een netwerk etc. en heb je je poorten wel gemapt?

Acties:
  • 0 Henk 'm!

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Ik zit NIET achter een router, ik heb geen anderen problemen met het systeem of andere in het netwerk.

Heb jou sample geprobeerd zonder succes

Misschien omdat het indy sockets zijn denk ik nu?

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


Acties:
  • 0 Henk 'm!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ik betwijfel het. Sockets zijn Sockets op het einde, allemaal gebouwd op winsock. Maar D6 en hoger bevatten inmiddels 4 socket implementaties, dus probeer die eens uit als je denkt dat dat het probleem is.

- Indy
- Internet - TcpClient/TcpServer
- Internet - TClientSocket/TServerSocket
- FastNet - TPowersock

We adore chaos because we like to restore order - M.C. Escher


Acties:
  • 0 Henk 'm!

  • martijn_brinkers
  • Registratie: November 2001
  • Laatst online: 24-01 15:04
Waar heb je het PHP scriptje draaien? op je eigen server of op een externe server?

Acties:
  • 0 Henk 'm!

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Externe server,

vanaf die server kan ik wel met msn connecten

misshien iemand met msn of icq.... voeg me maar toe....

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


Acties:
  • 0 Henk 'm!

  • martijn_brinkers
  • Registratie: November 2001
  • Laatst online: 24-01 15:04
Het zou dus goed kunnen dat die server waarop je het php script draait achter een firewall staat en geen uitgaande verbindingen accepteert (wel misschien naar icq en msn maar niet naar andere adressen). Kan je niet zelf een apache server draaien met php zodat je kan kijken of het locaal wel werkt?

Acties:
  • 0 Henk 'm!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Parcye schreef op 16 februari 2003 @ 04:15:
misshien iemand met msn of icq.... voeg me maar toe....
Of kom naar #devschuur op irc.tweakers.net

We adore chaos because we like to restore order - M.C. Escher


Acties:
  • 0 Henk 'm!

Verwijderd

Not allowed for public view

[ Voor 90% gewijzigd door Verwijderd op 16-02-2003 20:34 ]

Pagina: 1