Utiliser TClientSocket sans placer l'icone ClientSocket sur une Form

Utiliser TClientSocket sans placer l'icone ClientSocket sur une Form - Delphi/Pascal - Programmation

Marsh Posté le 24-04-2005 à 19:05:35    

Voilà je voudrais pouvoir me servir de TClientSocket sans placer l'icone ClientSocket(ScktComp) sur une form. En gros je veux que ça marche en appli console J'espère que vous pourrez m'aidez !  
Merci d'avance.

Reply

Marsh Posté le 24-04-2005 à 19:05:35   

Reply

Marsh Posté le 24-04-2005 à 23:41:57    

Tout au début (démarrage du soft) tu le crées :
 
Socket := TClientSocket.Create(nil);
 
là t'emploies Socket comme tu veux
 
et tout à la fin quand t'en auras plus besoin (fermeture du soft) tu le vires :
 
FreeAndNil(Socket);
 
Entre les deux tu peux définir ses propriétés, et assigner des méthodes à ses événements.


Message édité par antp le 24-04-2005 à 23:42:46

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 25-04-2005 à 20:58:51    

Merci pour ton aide ! Ca marche , mais maintenant y a un autre problème, j'arrive à lancer une connection, mon serveur reconnait la connection, mais impossible d'envoyer un buffer ! Pourtant ça marche avec mon application quand elle possède une Form, et la ça marche pas quand je veux faire la meme chose mais en application console. Est ce que par harsard y a pas d'autre champ de Tclientsocket à initialiser.

Reply

Marsh Posté le 25-04-2005 à 21:00:10    

Ça dépend, regarde quelles propriétés ou événements tu avais modifiés quand il était sur la Form.
Quand tu dis "ça marche pas", ça plante ou il ne se passe rien ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 25-04-2005 à 22:22:59    

Ben ça marche parce que le serveur, detecte la connexion , mais ensuite il reçoit pas la string que j'envois, alors que quand c une form si , c étrange ...
Je sais pas si tu va pouvoir m'aider je voudrais pouvoir transcrire cette fonction qui est sur un form , en une procedure pour une appli console , mais je vois pas tro comment ...
En gros faudré que je puisse écouter avec un serveur en mode console ...
 
 
 
 

Code :
  1. procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
  2. var
  3. i : integer;
  4. taille : integer; // taille du buffer reçus
  5. begin
  6. Memo1.Lines.Add('Lecture des informations effectuées');
  7. taille := Socket.ReceiveLength;
  8. if taille <= taillebuffer then
  9. begin
  10. Socket.ReceiveBuf(Buffer,taille);
  11. buffer.ip := socket.RemoteHost;
  12. Memo1.Lines.Add('L adresse : ' + Buffer.ip + ' envoie posx : ' + Floattostr(Buffer.posx) + ' posy : ' + Floattostr(Buffer.posy ) );
  13. For I:=0 To ServerSocket1.Socket.ActiveConnections -1 Do
  14. ServerSocket1.Socket.Connections[I].SendBuf(Buffer,taille);
  15. end;


 
J'espère que tu pourra me sauver ! :p


Message édité par zitan le 25-04-2005 à 22:39:57
Reply

Marsh Posté le 26-04-2005 à 00:03:12    

à)


---------------
Un tiens vaut mieux que deux tu l'auras...
Reply

Marsh Posté le 26-04-2005 à 00:16:29    

Tu dois raccorder le OnClientRead du socket à une métode (procédure d'un objet).
Donc il faut voir si t'as déjà un objet quelque part dans ton programme actuel auquel tu pourrais rajouter une méthode ClientRead.
Sinon tu dois créer une classe que tu appelles par exemple TSocketManager et dont tu crées une instance (comme tu le fais pour le socket lui-même).
À cette classe tu ajoutes une méthode ClientRead qui reçoit les bons params, et tu la raccordes au OnClientRead du socket.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-04-2005 à 12:34:18    

merci beaucoup

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed