11 mars 2009

[Projet PF2] premier soucis !

Mon problème est tout con: je n'arrive pas à récupérer les données que le serveur jabber m'envoie quand j'envoie une requête de connexion :s

vous pourrez voir mon code, simple, je ne parse pas encore l'XML, j'essaye de m'attaquer au nerf de logiciel, la connexion en elle même:

#lang scheme
(require xml)

;-------------------------------------
;
; Client Jabber: reseau
;
;-------------------------------------

; ca marche pas, les données recu sont mal parsées :(
;


; serveur jabber au hasard
(define URL1 "im.apinc.org")
(define URL2 "talk.google.com")
(define PORT 5222)




(define (client-test)
(let-values ([(server->me me->server)
(tcp-connect URL2 PORT)])
(write "" me->server) ; temporaire, histoire de debugger rapidement
(sleep 1) ; pour quand ca lag un peu
(write "" me->server)
(sleep 1)
(close-output-port me->server)
(let ([response (read server->me)])
(display response) (newline) ; c'est la que ca déconne

(close-input-port server->me))))

J'ai bien essayé avec le serveur googletalk et apinc.org, le truc c'est que les deux serveurs ne retournent pas le même message xD

googletalk me retourne: HTTP/1.1
apinc me retourne:
  • Je recois bien toutes les données du serveur mais je n'arrive pas a afficher comme il faut les données envoyées du serveur (avec printf et display), comme c'est du xml, mais en même temps c'est quoi, une string de toute manière ?!
  • Sinon je ne recois même pas la réponse complète, car xmpp permet l'envoie non synchrone des données genre il va m'envoyer un bout, et ensuite il va m'en envoyer un autre. Le problème c'est que par défaut le listener que tcp-connect crée est configuré pour ne récupérer qu'un block de donnée. Peut être que le soucis est là ? j'essayerais de reconfigurer le listener quand j'y penserais !
  • Sinon ben quand je crée un listener en mode serveur et que je m'y connecte, j'essaye de lui envoyer une string, ben le serveur m'affiche bien la string en entier...

    Aucun commentaire: