Delphi / DirectPlay ! Aidez moi j'ai plus beaucoup de temps ! - Programmation
Marsh Posté le 18-02-2002 à 14:31:47
le pbm c'est ke je réalise un jeu avec des potes et ils utilisent les composants de DirectX (Directdraw, ...) et pas ceux de DelphiX. Et je crois que ca ne sera pas tres compatible si on mélange DirectX et DelphiX. Qu'en penses tu ?!
Marsh Posté le 18-02-2002 à 17:51:18
c bien ce k'il me semblait, merci mais c'est trop tard ils ont deja commencé le moteur D2 avec les composants DirectX. Tu sais si je pourrais intégrer le réseau dans le jeu si j'utilise les composants ClientSocket et ServerSocket de Delphi ????!!! Parceque la c'est facile : il est presque au point !
Marsh Posté le 18-02-2002 à 19:29:08
Bah oui, il n'y a pas de problem pour utiliser directement des simples sockets meme si le reste du programme utilise DirectX. Je crois meme me souvenir que dans certains jeux, ils ont retiré le support DirectPlay pour passer à de bons vieux sockets parceque ca ne passait pas bien les firewall, mais c'est vieux deja
Marsh Posté le 18-02-2002 à 20:07:37
ok merci beaucoup et, dit, tu crois pouvoir m'aider pour un petit problème avec mon apli serveur/client Delphi ? ca ne passe justement pas bien par mon réseau local ...
Marsh Posté le 18-02-2002 à 20:10:24
Ca veux dire quoi ca : ca ne passe justement pas bien par mon réseau local ...
Marsh Posté le 18-02-2002 à 20:22:37
euh bah absolument rien, mais je viens juste de m'en rendre compte, pardon
alors je me réexplique : j'ai une apli server et une apli client, ca marche tres bien quand je reste sur le meme ordi (j'ouvre les 2 appli sur le meme et je rentre la meme IP pour 'address' et pour 'host', et la ca roule mais qd je lance le server sur l'un et le client sur l'autre eh bah il ne se passe rien du tout !!! et ca soule quoi ! aide moi ! cété clair cette fois ou je la refais (je peux hein ca ne me derangerais pas ... hehe)
Marsh Posté le 18-02-2002 à 20:24:32
et puis au fait ca sert à koi 'address' dans les propriétés de ClientSocket1 ?
Marsh Posté le 18-02-2002 à 20:25:46
Heu
Ca va pas etre facile de trouver le probleme avec seulement ca commes remarques. Il faut nous en dire un peu plus, par exemple, tu pourrais nous montrer le code qui ouvre les sockets, tant sur le client que sur le serveur.
Marsh Posté le 18-02-2002 à 20:40:50
alors sur le client ca donne ca :
procedure TForm1.ButtonSeConnecterClick(Sender: TObject);
begin
ClientSocket1.Address := EditAdresse.Text ;
ClientSocket1.Open ;
end;
enfin j'ai juste utilisé la fonction ClientSocket1.Open ;, rien de plus et puis bien sur il y a différentes procédures qui s'occupe d'envoyer et de recevoir du texte et de gérer les valeur données par l'utilisateur dans les objets de type Edit (host, port, address)
Marsh Posté le 18-02-2002 à 20:42:11
et pour le serveur ca donne donc ca :
procedure TForm1.ButtonSeConnecterClick(Sender: TObject);
begin
ServerSocket1.Open;
end;
Marsh Posté le 18-02-2002 à 20:42:36
donc la il ne s'agit bien sur que des procedures d'ouvertures des sockets
Marsh Posté le 18-02-2002 à 23:31:06
Je ne m'y connais pas assez en Delphi pour t'aider de ce cote, mais à quel port tu te bind dans le serveur ???
Marsh Posté le 19-02-2002 à 12:25:19
il me semble que je peux utiliser n'importe quel port du moment que le server et le client utilise le meme pour se connecter, non ?! donc j'utilise, au pif, 21
Marsh Posté le 19-02-2002 à 13:25:24
Et bien, tu utiises peut-etre le port 21, mais ca ne se voit pas du tout dans le code que tu as montré. Par contre, évite d'utiliser ce port ( et même évite d'utiliser les ports < 1024 ) parceque ils sont plus ou moins réservés. Par exemple, ne va pas t'étoner de voir un ftp se connecter à ton serveur.
Marsh Posté le 19-02-2002 à 14:12:52
bon en effet j'avais oublié de te montrer cette partie de mon code :
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Port := SpinEditPort.Value ;
ClientSocket1.Host := EditHost.Text ;
ClientSocket1.Address := EditAddress.Text ;
end;
la propriété ClientSocket1.Port du composant ClientSocket1 correspond donc à la valeur donnée par l'utilisateur et donc contenue dans SpinEditPort. Tu penses que c'est pas une bonne idée de laisser choisir le port au client (de toute facon je crois que sans ca je ne pourrais rien faire puisqu'il doivent utiliser le meme port alors il faut bien que je les laisse choisir). Je vais qd meme essayer avec un port supérieur à 1024 on verra bien. à tout à l'heure
Marsh Posté le 19-02-2002 à 16:33:24
Ok, mes souvenirs d'utilisation des sockets sont :
Pour le serveur, il faut configurer 2 choses avant d'ouvrir le socket :
- Le port sur lequel le serveur écoute.
- Les machines autorisées à se connecter sur le serveur
Pour le client il faut configurer 2 choses aussi :
- Le port
- L'addresse du serveur.
Marsh Posté le 21-02-2002 à 23:19:48
C'est bon, ça marche ! Merci pour toutes tes infos Kris !
Marsh Posté le 18-02-2002 à 14:10:09
Je cherche simplement à faire un petit programme de chat avec le composant DirectPlay de DirectX sous Delphi ! Ca devrait pas être la mort, mais je ne sais pas du tout comment m'y prendre. Si vous pouvez au moins m'expliquer comment créer un objet DirectPlay ca serait cool !!!! Merci.