Page 1 sur 1

Api Winsock

Publié : dim. 05/nov./2006 7:07
par poshu
J'ai encore besoin d'aide T_T

J'utilise en ce moment l'api Winsock, et jusque là tout va bien.
Il se trouve cependant que l'api Winsock n'est pas completement implémenté: j'ai besoin de la commande Poll pour pouvoir mettre un timeout à l'attente d'un packet sur mon socket (mon application est séverement multithreadé, et je ne peux pas me permettre d'en rajouter).
J'ai donc pensé à appeler la librairie winsock directement pour récuperer la commande poll et l'appeler avec un callcfunctionfast(). Mais là j'ai encore eu un probleme puis ce que windows hurle à la mort que Winsock.dll (situé dans le dossier WINDOWS\system32 et "directement appelable" puis ce qu'enregistré) n'est pas une image windows valide...

Image

Auriez vous une solution au probleme svp?

Publié : dim. 05/nov./2006 10:01
par Backup
ha oui ! :D je reconnais bien la le message d'erreur :lol: :lol:

un windows comme ça pour moi c'est du Chinois :lol:

Publié : dim. 05/nov./2006 10:58
par flype2
et as-tu essayé avec Import/EndImport ?

Code : Tout sélectionner

;- 
;- Windows Socket API Reference
;-
;- Client:   Included in Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, and Windows 95.
;- Server:   Included in Windows Server 2003, Windows 2000 Server, And Windows NT Server.
;- Header:   Declared in Winsock2.h.
;- Library:  Use Ws2_32.lib.
;- 


Import "Ws2_32.lib"
  bind.l(*socket, name.s, namelen.l)
  recv.l(*socket, *buf, buflen.l, flags.l)
EndImport

End
par contre j'ai vu sur msdn, il n'y a apparemment pas de fonction 'poll()'.



PS:
c'est bien moi - flype - mais mon compte s'est désactivé tout seul
parce que j'ai voulu changer mon adresse email. :evil: j'attends une réponse de fred.

Publié : dim. 05/nov./2006 11:07
par flype2
ou alors ouvre la dll comme çà :

Code : Tout sélectionner

OpenLibrary(#PB_Any, "Ws2_32.dll")

Publié : dim. 05/nov./2006 15:22
par flype2
ah si, il y a bien poll() du moins WSAPoll() :

Code : Tout sélectionner

Import "Ws2_32.lib"
  WSAPoll.l(*fdarray, nfds.l, timeout.l)
EndImport

Publié : lun. 06/nov./2006 9:25
par Progi1984
La classe, il utilise progitodo :)

Publié : lun. 06/nov./2006 11:37
par poshu
Merci flype, je ne connaissais meme pas la fonction import... Désolé T_T

Progi, j'utilise le progitodo et je te remerci d'ailleur d'avoir pondu ca. il est vraiment top.