[PHP]socket_write laat geheugen vollopen.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben bezig met een socket script.
Dit werkt nu bijna helemaal.

Ik heb alleen een 'lek'. Als k de socket write aanroep om data te verzenden zie ik dat mijn geheugen volloopt.

IK begrijp hier niks van :?

Na wat zoeken vond ik dat je opties kan zetten.
code:
1
2
$array = array('l_linger' => 0, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER,$array);

Dit heeft geen invloed. Als ik schrijf naar de socket dan lees ik dat op de client uit. Maar toch loopt het geheugen vol.
ik doe dit
code:
1
2
$output = "Welkom Jochemmol";
$bytes = socket_write($socket, $output."\n", strlen ($output."\n"));

het maakt geen verschil of ik de \n in de variabele zet of niet.
Is er geen functie met clear_buffer of reset socket write function? Of doe ik iets basics fout?

Jochemmol


Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Roep je wel socket_close aan als je klaar bent?

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Bozozo schreef op woensdag 09 juli 2008 @ 11:38:
Roep je wel socket_close aan als je klaar bent?
Ik roep socket_close aan na 5 seconden. Ik heb een 'luister timeout' van 5 seconden.

Jochemmol


Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Weet je ook zeker of dat goed gaat?

Ik roep maar wat hoor, ik heb sockets ook pas 1 keer gebruikt O-)

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Volgens mij schrijf je het bij een write niet letterlijk naar een client, maar naar een buffer. Die client leest vervolgens die buffer. Je pushed dus naar mijn weten niets naar de client, alles blijft bij jou tot het opgehaald wordt.

Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
frickY schreef op woensdag 09 juli 2008 @ 12:34:
Volgens mij schrijf je het bij een write niet letterlijk naar een client, maar naar een buffer. Die client leest vervolgens die buffer. Je pushed dus naar mijn weten niets naar de client, alles blijft bij jou tot het opgehaald wordt.
Als dat zo is zou ik met fluhs() de buffer leeg kunnen maken. Maar dat werkt niet. Of is er een speciale manier om de buffer leeg te gooien?

Jochemmol

Pagina: 1