Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Socket connecte mais pas de communication client / serveur [ Réseau & Internet / Sockets ] (Trakers666)

jeudi 6 mars 2008 à 00:43:51 | Socket connecte mais pas de communication client / serveur

Trakers666

Bonjour je travaille depuis quelques temps avec les composants TServerSocket et TClientSocket sous BDS 2006 mais sur ma derniere application destinee a la creation d'un jeu j'ai beau chercher je ne trouve pas pourquoi mon client et mon serveur ne "dialoguent" pas.
Le serveur et le client ont l'air de se connecter sans problemes ( les deux booleens Socket.Connected sont a true) mais je ne comprends pas pourquoi seule la fonction du client OnConnect fonctionne les autres ne repondent pas

Voici le Code

Merci d avance pour vos reponses

unit reseau;

interface

uses
  ScktComp, Sockets, Classes, Windows;


  type TClient = class
    Client: TClientSocket;
    public
      procedure ClientConnect(Sender: Tobject; Socket:TCustomWinsocket);
      constructor create();
      procedure ClientRead(Sender: Tobject; Socket:TCustomWinsocket);
  end;

  type TServer = class
    Server: TServerSocket;
    public
      constructor create();
      procedure ServeurConnect(Sender:TObject; Socket: TCustomWinSocket);
  end;

  function init_reseau: boolean;
  function connexion_client(ip: string): boolean;
  function getIp: string;

var
  Server1: TServer;
  Client1: Tclient;

implementation

function getIP: string;
begin
  With TCustomIpClient.Create(Nil) do
  begin
    Result:= LocalHostAddr;
    Free;
  end;
end;

constructor TClient.create;
begin
  Client:= TClientSocket.Create(Nil);
  Client.Active:= False;
  Client.ClientType:= ctNonBlocking;
  Client.Port:= 4242;
  Client.OnConnect:= ClientConnect;
  Client.OnRead:= ClientRead;
end;

constructor TServer.create();
begin
  Server:= TServerSocket.Create(Nil);
  Server.Active:= False;
  Server.ServerType:= stNonBlocking;
  Server.Port:= 4242;
  Server.OnClientConnect := ServeurConnect;
end;


function init_reseau: boolean;
var
  host, mode: char;
  Ip: string;
begin
  Result:= true;
  Writeln('Mode Solo ou Multi (S/M)');
  repeat readln(mode)
  until (mode='S') or (mode='M');

  if mode='M' then
    begin
      Writeln('Heberger la partie? (O/N)');
      repeat readln(host)
      until (host='O') or (host='N');

      if host='O' then
        begin
          Server1:= TServer.Create;
          Server1.Server.Active:= true;
          Writeln('Partie en ligne sur ',getip);
          Result:= true;
          connexion_client(getip);
        end
      else
      begin
        Writeln('Ip de la partie a joindre?');
        Readln(ip);
        Connexion_client(ip);
      end;

    end
  else
    Result:= True;
end;

function connexion_client(ip: string): boolean;
begin
  Client1:= TClient.Create;
  Client1.Client.Address:= ip;
  Client1.Client.Active:= True;
  repeat Client1.Client.Socket.Connect(0)
  until Client1.Client.Socket.Connected;

  Result:= True;
end;

procedure TClient.ClientConnect(Sender: Tobject; Socket:TCustomWinsocket);
begin
  Writeln('Connecte');
end;


procedure TServer.ServeurConnect(Sender:TObject; Socket: TCustomWinSocket);
var
  i: integer ;
  map1: string;
begin
  Writeln('client arrive');
end;

procedure TCLient.ClientRead(Sender: Tobject; Socket:TCustomWinsocket);
var
  line, subline: string;
  i:integer;
begin
  line:= Socket.ReceiveText;
  Writeln(line);
end;

end.






Cette discussion est classé dans : end, client, socket, begin, create


Répondre à ce message

Sujets en rapport avec ce message

TIdTCPServer réouverture de connexion impossible [ par nitrique ] Bonjour à tous,J'ai une connection TCP/IP indy avec TIdTCPServer et client.Sur le serveur, je lance mon application: OKSur le client je lance mon appl Probleme de reception de texte avec TClientSocket [ par obitskater ] Bonjour, voilà je suis en train de créer un chat réseau dans le cadre de mes études.Sur une même form je place mon socket serveur et mon socket client Probleme de reception de texte avec TClientSocket [ par obitskater ] Bonjour à tous.Je suis en train de développer un chat au moyen des composants TserverSocket et TclientSocket tous les deux présents sur la même form, Création de composant : modifier une sous propriete à partir d'une autre [ par orelien ] Bonjour,J'ai crée un composant héritant de TGraphicControl :unit Circle; interface uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, thread & dll -> Exception [ par WSTBoss ] Bonjour à tous,j'ai une dll qui contient un thread, tout ce passe bien le thread marche comme il faut mais cependant lors du dechargement de la dll pa Rajouter un TreeNode dans un TreeView [ par Francky23012301 ] Salut à tous,Je suis entrain de réaliser un composant dont voici le code :unit BrowserEffects;interfaceuses  Windows, Messages, SysUtils, Classes, Con TCustomWinSocket [ par Bacterius ] Bonjour, bon je rencontre un problème : j'ai, de façon générale, 2 applications 1 application serveur : - 1 TServerSocket 1 application client : - Groupe de Tbutton [ par nakos91 ] var  but:array [1..27] of TButton;begin  for i:=1 to 30 do    begin     but[i]:= TButton.Create(Self);     but[i].Parent := Form1;     but[i].Height:= sortir de la procedue avant la fin [ par promenneur77 ] je voudrais mettre fin au programme quand il m'affiche ' pas dans la liste'comment je doit faire ?procedure TForm1.Button1Click(Sender: TObj Question aux internautes [ par Bacterius ] Bonjour, je voudrais juste savoir s'il est possible d'exprimer deux résultats d'une opération sans passer par "begin" "end" .Exemple :begin         if


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.