Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1424 connectés 

  FORUM HardWare.fr
  Programmation
  C

  socket en C ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

socket en C ...

n°922168
ben33
Posté le 13-12-2004 à 18:40:18  profilanswer
 

Bonjour,  
 
Je travaille actuellement sur une application Unix (en C Unix) qui a été porté sous WIndows.. Quand je dis porté... c beaucoup dire.. disons qui compile sous Windows et qui est encapsulé dans une application multithread Windows...(donc en C++)
 
Cette appli se connecte à un serveur Unix en socket pour faire de l'animation d'éléments...
J'ai vu dans le code que tout ce qui concerne les sockets est resté en programmation Unix (bzero, bcopy, sigsetmask, etc...)
Pas de WSAStartup par exemple..
 
Or l'animation est tres peu stable..
Est ce que le fait de porter la programmation socket en Windows (en gros de passer le code du client Unix en client Windows) peut etre bénéfique?
 
Merci pour votre aide!

mood
Publicité
Posté le 13-12-2004 à 18:40:18  profilanswer
 

n°922231
Emmanuel D​elahaye
C is a sharp tool
Posté le 13-12-2004 à 21:04:53  profilanswer
 

ben33 a écrit :

Je travaille actuellement sur une application Unix (en C Unix) qui a été porté sous WIndows.. Quand je dis porté... c beaucoup dire.. disons qui compile sous Windows et qui est encapsulé dans une application multithread Windows...(donc en C++)


Je ne vois pas pourquoi 'donc en C++'. L'API Win32 propose les pthtreads qui sont équivallents à ceux qu'on a sous Unix (à quelques détails près) et qui sont tout à fait appelables en C.

Citation :


Cette appli se connecte à un serveur Unix en socket pour faire de l'animation d'éléments...
J'ai vu dans le code que tout ce qui concerne les sockets est resté en programmation Unix (bzero, bcopy, sigsetmask, etc...)
Pas de WSAStartup par exemple..


Marche pas. Sous Windows, il faut absolument appeler WSAStartup() et ne pas se tromper entre winsock et winsock2.

Citation :


Or l'animation est tres peu stable..
Est ce que le fait de porter la programmation socket en Windows (en gros de passer le code du client Unix en client Windows) peut etre bénéfique?


Ecrire du code correct ne peut être que bénéfique! Un client Windows en winsock2 est très proche d'un client Unix BSD, à part l'init et la fin (WSA...)


Message édité par Emmanuel Delahaye le 13-12-2004 à 21:05:28

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°922502
ben33
Posté le 14-12-2004 à 09:36:10  profilanswer
 

Merci beaucoup...  
Ca fonctionne actuellement... mais ce nets pas super stable.. d'ou ma question..
Merci beaucoup

n°930832
tertulia
Posté le 23-12-2004 à 12:02:09  profilanswer
 

quelle est la difference entre winsock et winsock2 ?

n°930895
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-12-2004 à 12:56:34  profilanswer
 

tertulia a écrit :

quelle est la difference entre winsock et winsock2 ?


Winsock est la première version des sockets Windows. Elle est très 'propriétaire'
 
Winsock2 est la deuxième version. Elle se rapproche énormément des sockets 'BSD' du monde Unix (Normalisés par POSIX.1 si je ne me trompe pas...).  
 
C'est ce qu'il faut utiliser pour tout développement nouveau.
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°930939
tertulia
Posté le 23-12-2004 à 13:42:17  profilanswer
 

le pb c que si j'inclue winsock2 j'ai des redefinitions dues a   winsock alors que je l'inclue nul part...

n°930951
HelloWorld
Salut tout le monde!
Posté le 23-12-2004 à 14:05:51  profilanswer
 

Emmanuel Delahaye a écrit :

L'API Win32 propose les pthtreads


Win32 dispose de ses propres thread [:aloy]
Y'a un portage des pthread (posix thread) pour Win32. Win32 n'est pas POSIX.
Un lien utile : http://tangentsoft.net/wskfaq/
Sinon que veux-tu dire par ce n'est pas stable, mais encore ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°937513
ben33
Posté le 05-01-2005 à 10:16:48  profilanswer
 

Y a t il un équivalent Windows pour sigsetmask...?  
Je n'arrive pas a trouver.. snif snif snif

n°937585
HelloWorld
Salut tout le monde!
Posté le 05-01-2005 à 11:36:51  profilanswer
 

Y'a pas les signaux en Win32. Si c'est pour faire des read non bloquants utilise select.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°938298
ben33
Posté le 05-01-2005 à 18:33:52  profilanswer
 

Merci

mood
Publicité
Posté le 05-01-2005 à 18:33:52  profilanswer
 

n°953763
burnout_23
Posté le 16-01-2005 à 00:13:01  profilanswer
 

les socket windows winsock2.h sont mieux struturé que le model unix , la gestion d'erreur estr plus précise.
les pthread de windows sont disponibles avec la commande  hThread = CreateThread( ...


Message édité par burnout_23 le 16-01-2005 à 00:14:40
n°953770
HelloWorld
Salut tout le monde!
Posté le 16-01-2005 à 00:16:32  profilanswer
 

pthread = POSIX thread. Windows possède son propre modèle de thread, non POSIX.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  socket en C ...

 

Sujets relatifs
pourquoi mon socket est non bloquant ?[SOCKET]Faire une action en cas de perte de connexion.
select et socket enrobé de sucre (fdopen mode lecture) -> probleme ???Réseau : quel formalisme pour les socket() ?
[JAVA Socket] ou comment detecter qd un client s'est deconnecté?les socket
C++ Builder Socket Bloquant !Java erreur de socket (win) 10106
Reseau Socket - Problème de bind() dans un client/serveur localPassage 1.3.1 à 1.4.2 : question socket
Plus de sujets relatifs à : socket en C ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR