CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Reseau] SDL_Net

Vengeur41
Vengeur41
Niveau 10
17 août 2005 à 16:19:25

Salut à tous,
Je chercherais un tuto pour un chat client/serveur en C comme celui de JYY mais avec SDL_Net, ce que j´ai essayé plante lamentablement ( segfault) et de toute facon je l´ai fait sans lire les docs.

Donc si quelqu´un a quelque chose comme ca, merci de m´en faire part.

Merci d´avance

Vengeur

dnob700
dnob700
Niveau 10
17 août 2005 à 18:21:07

je te propose de lire la doc et comme ça tu pourra peut-être le faire non ?

surtout que si j´ai bien suivi ton précédent topic un tel exemple se trouve dasn la doc !

Vengeur41
Vengeur41
Niveau 10
17 août 2005 à 18:40:55

Ah oui ?
J´ai pourtant regardé la doc sans rien trouver dans le genre.

Dans ce cas je vais y retourner.

Merci.

guyver2
guyver2
Niveau 10
26 août 2005 à 00:09:14

j´ai essayé le tuto de JYY (apres avoir lu tous les commentaires) et ça marche impec...
donc je pense que si tu t´y met un poil tu devrait y arriver

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
26 août 2005 à 00:19:10

Erks, pour un simple programme de chat en client/serveur pourquoi ne pas utiliser les sockets ?

/me n´aime pas les libs réseaux haut niveau :)

gollumkawder
gollumkawder
Niveau 10
26 août 2005 à 14:52:57

Un segfault ? Et tu es sûr que ça vient pas de ton programme ? C´est sûr sans la doc ça deviens moins trivial.. =/

Vengeur41
Vengeur41
Niveau 10
26 août 2005 à 22:00:36

Le programme de chat serait là à titre d´exemple.
Ce n´est pas le but final.

Mais là encore c´est pour la portabilité.

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
26 août 2005 à 23:49:45

Je vois rien de plus portable que les sockets :question:

Les fonctions sont les mêmes sur la plupart des OS récents (j´entends par là Linux et Windows), y´a juste 2/3 noms de structures qui change, qui sont vite résolus à coup de typedef, ou même de condition de précompilation.

Avec MrGoTo on fait un projet utilisant les réseaux, une version win32 et une version linux, eh ben ça marche très bien sous les deux systèmes sans rien modifier dans le code.

Vengeur41
Vengeur41
Niveau 10
27 août 2005 à 01:25:03

Ben sous Unix les structures ne sont pas typedefées,
c´est pas que je veux faire aucun effort pour le portage mais voila quoi...
De plus la SDL est simple avec de la doc...
En 1 ou 2 semaines d´apprentissage j´ai dja fait pas mal de truc en réseaux...
Avec les sockets j´aurais surement jamais pu...

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
27 août 2005 à 02:19:46

Ce que je te disais à propos des typedef, c´est juste que sous windows tu dois par exemple mettre SOCKET et sous linux struct sockaddr_in. Puis 2/3 autres trucs comme ça...

Après ça dépend de l´utilisation du réseau que tu veux faire évidemment :

Si tu utilises juste le réseaux par besoin, comme pour un jeux par exemple, là tu peux effectivement utiliser une librairie haut niveau pour facilité le portage (même si je me répète c´est très simple), mais pour faciliter la programmation NON, en effet je trouve perso que les sockets c´est vraiment très simple d´utilisation.

"j´ai dja fait pas mal de truc en réseaux... "

En lisant cette phrase j´ai l´impression que tu t´interesses aux réseaux eux même, et dans ce cas là je trouve dommage d´utiliser une lib haut niveau.
Pour moi l´intêret c´est pas d´avoir un programme qui utilise les réseaux avec 3 lignes de codes (oui bon j´exagere..), mais plutot de comprendre comment fonctionne les réseaux, d´ou l´interet d´utiliser les sockets dans ce cas là.

Enfin, stun avis perso...

Vengeur41
Vengeur41
Niveau 10
27 août 2005 à 13:40:06

Par "trucs en réseaux" j´entends mini-jeux multi joueurs.

De plus, pour coder un serveur multi-client, avec les sockets la seule solution que j´avais trouvé c´était de créer un nouveau thread par client.
SDL_Net a tout ce qu´il faut pour ne pas faire ca, pourquoi s´en passer ?

Les mots clef de SDL_Net sont à mon gout plus clair mais créer un programme avec les sockets ou avec SDL_Net (en tout cas, pour l´envoi d´un message d´un ordinateur à un autre) ca revenait quasiment au meme nombre de lignes (à 5 ou 6 près).

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
27 août 2005 à 14:00:17

Ouais, c´est bien ce que je pensais : on utilise pas le réseaux de la même façon :)

Si tu veux pas te faire chier alors oui utilise SDL_Net, mais je trouve pas ça très enrichissant, faire un serveur multi-client avec les sockets ça peut être très bénéfique je trouve - notamment avec l´utilisation des thread, comme tu le dis -.

Vengeur41
Vengeur41
Niveau 10
27 août 2005 à 14:06:36

Ce n´est pas une question de "se faire chier", les threads bouffent réellement enormement de mémoire dès qu´on a un certain nombre de clients, SDL non.

Bien sur les threads j´ai du mal les gérer mais un jour sans doute j´utiliserai les sockets, pour moi passer aux sockets sera une "évolution", comme en ce moment où je passe de SDL à OpenGL+SDL...

Bigloo
Bigloo
Niveau 10
27 août 2005 à 14:07:45

Oui jsuis d´accord pour les threads, d´ailleurs j´ai une question : est-ce qu´il y´a pas un autre moyen de procéder ?

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
27 août 2005 à 14:24:01

Vengeur41 -> SDL_Net gère comment le multi client alors dans ce cas là ? Une seul thread ?

L´utilisation des thread pour un serveur c´est primordial je dirais.

Bigloo -> Pour gérér le multi client ? Certainement que si, vu que SDL_Net n´utilise pas un thread par client.

Bigloo
Bigloo
Niveau 10
27 août 2005 à 14:25:22

Sous entendu : quel est ce moyen et est-il applicable en Python :p)

dnob700
dnob700
Niveau 10
27 août 2005 à 14:27:00

Si bien sur, il faut faire une boucle de lecture qui interoge chacun des sockets ouvert pour savoir s´il ont des données en attente (à l´arrivé) et si oui les lire (pas les lire tout de suite vu que la lecture non bloquante bouffe trop de ressource) ensuite tu fait ce que tu veux, des fonction de callback si ça te fait plaisir ou autre chose.

Donc globalement c´est juste une liste chainé de tes socket ouverts.

Dans le genre ne pas se faire chier, si vous voulez codez un serveur multi client en 5 lignes de code (et encore) je vous conseille winsck.ocx, les bon vieux composant COM s´utilise très très bien et très facilement même en C.

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
27 août 2005 à 14:28:41

:-d

Non je connais pas d´autre trucs...et encore moins utilisable en python! :)

Bigloo
Bigloo
Niveau 10
27 août 2005 à 14:28:49

Bon bah tant pis.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment