Probleme de reception de données

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Probleme de reception de données

Message par lepiaf31 »

Salut !

Bon depuis quelques temps j'essaye de communiquer avec un serveur web en utilisant des sockets. Tous marche bien sauf la reception des donnees. Je ne recois qu'une partie des donnees et pas toujours la meme quantitié. Voila le code que j'utilise:

Code : Tout sélectionner

Procedure.s ReceiveData(Connection)
  Datas.s = ""
  BufferSize = 1024
  *Buffer = AllocateMemory(BufferSize)
  Repeat
    Result = ReceiveNetworkData(Connection, *Buffer, BufferSize)
    Datas + PeekS(*Buffer)
  Until Result < BufferSize
  FreeMemory(*Buffer)
  ProcedureReturn Datas
EndProcedure

Procedure.s SendSocket(Host.s, Socket.s)
  Conn = OpenNetworkConnection(Host, 80)
  If Conn
    SendNetworkData(Conn, @Socket, Len(Socket))
    Delay(1)
    Result.s = ReceiveData(Conn)
    CloseNetworkConnection(Conn)
    ProcedureReturn Result
  Else
    ProcedureReturn ""
  EndIf
EndProcedure

InitNetwork()
Host.s = "www.equipagesurvivors.com"
Socket.s = "HEAD /index.php HTTP/1.1+Chr(10)+Host: www.equipagesurvivors.com+Chr(10)+Connection: Keep-Alive"
Result.s = SendSocket(Host, Socket)
Merci à ceux qui voudrons bien essayer de m'aider :)
Anonyme

Message par Anonyme »

Ton serveur ne renvois rien.

Execute ce code avec le debug pour pouvoir le "killé"

Code : Tout sélectionner

InitNetwork()


Host.s = "www.equipagesurvivors.com"
Socket.s = "HEAD /index.php HTTP/1.1+Chr(10)+Host: www.equipagesurvivors.com+Chr(10)+Connection: Keep-Alive"


Conn = OpenNetworkConnection(Host, 80)
SendNetworkData(Conn, @Socket, Len(Socket))


Repeat

NetWorkEvent =  NetworkClientEvent(Conn) 


If NetWorkEvent=#PB_NetworkEvent_Data
Debug "Receive..."
 *Buffer = AllocateMemory(1024)
Debug ReceiveNetworkData(Conn, *Buffer, 1024)
EndIf 




ForEver

Appel cette fct° ReceiveNetworkData() uniquement si tu recois des données , ( regarde le code plus haut )

++
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Je me suis trompé dans le code que je vous ai donné :? Il modifier ceci:

Code : Tout sélectionner

Socket.s = "HEAD /index.php HTTP/1.1"+Chr(10)+"Host: www.equipagesurvivors.com"+Chr(10)+"Connection: Keep-Alive"+Chr(10)+Chr(10)

Cpl.Bator ton code renvoi ca :

Code : Tout sélectionner

Receive...
456
et l'executable ne s'arrete pas.
Anonyme

Message par Anonyme »

Avec l'EOL sa marche , c'est censé te renvoyé quoi mis a part sa :
HTTP/1.1 200 OK
Date: Wed, 20 Feb 2008 11:01:02 GMT
Server: Apache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.8
Set-Cookie: PHPSESSID=6f9c44a253ac38a915a167ad7dea9ffa; path=/
Set-Cookie: PHPSESSID=8ab37ea3b5a0251177fac815fe88407a; path=/
Vary: Host
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html

et l'executable ne s'arrete pas.
Execute ce code avec le debug pour pouvoir le "killé"
:wink:
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Bon en fait jme suis encore planté (pour changer) la vrai requete c'est ca :

Code : Tout sélectionner

Socket.s = "GET /index.php HTTP/1.1"+Chr(10)+"Host: www.equipagesurvivors.com"+Chr(10)+"Connection: Keep-Alive"+Chr(10)+Chr(10)
(il faut envoyer une requete GET au lieu de HEAD).
Normalement je dois recevoir le code source entier de la page, or je n'ai le code source qu'en partie.

Cpl.Bator, en executant ton code avec la bonne requete cette fois, j'obtient ceci:
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
1024
Receive...
436
Receive...
490
Anonyme

Message par Anonyme »

Code : Tout sélectionner

HTTP/1.1 200 OK
Date: Wed, 20 Feb 2008 11:28:00 GMT
Server: Apache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.8
Set-Cookie: PHPSESSID=34c8a7f7927319af22cf5bfaa32f54e4; path=/
Set-Cookie: PHPSESSID=e1102d08eff33291ddcd73338baaa002; path=/
Vary: Host
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

ec3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta http-equiv="Content-Language" content="fr"/>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>

<title>Survivors à vous de jouer !</title>
<link href="scode/scode.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scode/scode.js"></script>

<meta name="description" xml:lang="fr" content="Les pirates ®
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Merci ce code marche tres bien :)
Mais j'aimerais arreter la boucle lorsque toutes les donnees ont été recues mais je ne sais pas comment faire
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Regarde du côté de Break
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

C'est bon j'ai réussi ^^
Mais j'ai un autre probleme: des caracteres s'incrustent dans le code source renvoyé et je ne sais pas à quoi ils correspondent ni pourquoi ils sont placés à tel ou tel endroit: on en voit quelques uns dans le code qu'à récupérer Cpl.Bator (en rouge):

[quote]HTTP/1.1 200 OK
Date: Wed, 20 Feb 2008 11:28:00 GMT
Server: Apache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.8
Set-Cookie: PHPSESSID=34c8a7f7927319af22cf5bfaa32f54e4; path=/
Set-Cookie: PHPSESSID=e1102d08eff33291ddcd73338baaa002; path=/
Vary: Host
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

ec3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta http-equiv="Content-Language" content="fr"/>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>

<title>Survivors à vous de jouer !</title>
<link href="scode/scode.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scode/scode.js"></script>

<meta name="description" xml:lang="fr" content="Les pirates ®
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Alors personne ne sait ?
Répondre