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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  C# > Thread + Socket : Passage par parametre, je galere !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C# > Thread + Socket : Passage par parametre, je galere !

n°1607708
xav987
jsuis pas fait pour travailler
Posté le 03-09-2007 à 18:11:58  profilanswer
 

Bonjour,
 
J'ai un proxy qui tourne bien en C++. Je debute le C#, et pour commencer, je voulais "migrer" ce proxy du C++ vers le C#.
 
Bon, sans rentré dans les details, j'ai mon main, dedans je crée une socket, puis juste apres, pour chaque accept, je crée un thread (classique quoi !)
Dans le thread, je reutilise ma socket. En c++, c'etait simple, je passait la socket en parametre, comme ceci :

Code :
  1. DWORD WINAPI proxy (LPVOID psocket)
  2. {
  3. [...]
  4. //Recuperation de la valeur du socket (par pointeur)
  5. SOCKET * ps = (SOCKET *)psocket;
  6. SOCKET socket_client = *ps;
  7. [...]
  8. }


 
En C#, c'est apparament moins simple d'utiliser les passages par parametre avec les socket. J'ai utilisé une methode trouvé sur le net :
Je crée ma fonction proxy dans une autre classe :

Code :
  1. public class MyProxyHandle
  2.     {
  3.         public Socket socket_client;
  4.         // Constructeur
  5.         public MyProxyHandle(Socket socket_client)
  6.         {
  7.             this.socket_client = socket_client;
  8.         }
  9.         // Méthode de modification du paramètre
  10.         public void SetParam(Socket param)
  11.         {
  12.             this.socket_client = param;
  13.         }
  14.         //fonction trhead
  15.         public static void Proxy()
  16.         {
  17.   //[ici je veut utiliser socket_client, mais je n'y arrive pas !]
  18.  }
  19. }


L'appel de mon thread se fait ainsi :

Code :
  1. MyProxyHandle ProxyHandle = new MyProxyHandle(socket_client);
  2. Thread T = new Thread(new ThreadStart(MyProxyHandle.Proxy));
  3. T.Start();


 
Ai-je fais une erreur ? Où ? Comment faire ?
Pff, le passage du C++ au C# est plus compliqué qu'il me semblait !
 
Merci :hello:


---------------
Il faut arreter l'informatique le jour où l'on trouve 1024g dans 1kg
mood
Publicité
Posté le 03-09-2007 à 18:11:58  profilanswer
 

n°1607829
xav987
jsuis pas fait pour travailler
Posté le 04-09-2007 à 08:43:04  profilanswer
 

UP ! Un peu d'aide svp :/


---------------
Il faut arreter l'informatique le jour où l'on trouve 1024g dans 1kg
n°1611173
moi23372
Posté le 12-09-2007 à 19:21:48  profilanswer
 

il y a deux manières pour passer un paramètre.
 
1) c'est une classe, et ta socket une variable, crée une propriété sur ta classe qui te permet d'assigner une socket. et avant le lancement du thread, tu crée l'instance et tu l'initialise
 
2) si je me souviens bien, il y a une autre classe que ThreadStart qui elle permet de passer des paramètres au lancement du Thread. me demande si c'est pas un truc comme ParametrizedThreadStart. Faut chercher dans la doc.

n°1614112
xav987
jsuis pas fait pour travailler
Posté le 22-09-2007 à 15:35:14  profilanswer
 

Je suis en retard, parce qu'avec le boulot je ne suit plus vraiment le forum, mais j'ai utilsé un treadpool, avec lequel on peut passer un object en parametre, donc c'est reglé depuis un moment deja ;)


---------------
Il faut arreter l'informatique le jour où l'on trouve 1024g dans 1kg

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  C# > Thread + Socket : Passage par parametre, je galere !

 

Sujets relatifs
Passage en Plein ecran de wmp sur internet, comment faire?Passage d'input à un binaire
Lancer une thread dans une Jsp (sans Javabean)php bdd passage des requetes
[Perl] lecture/écriture simultanées sur une socketmailto: chemin de sauvegarde en paramètre?
Passage de variables d'un module vers un userformActivePerl et passage de paramètres aux dll
Runtime.exec(), probleme de passage d'arguments{RESOLU}getopts et paramètre
Plus de sujets relatifs à : C# > Thread + Socket : Passage par parametre, je galere !


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