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 :
- DWORD WINAPI proxy (LPVOID psocket)
- {
- [...]
- //Recuperation de la valeur du socket (par pointeur)
- SOCKET * ps = (SOCKET *)psocket;
- SOCKET socket_client = *ps;
- [...]
- }
|
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 :
- public class MyProxyHandle
- {
- public Socket socket_client;
- // Constructeur
- public MyProxyHandle(Socket socket_client)
- {
- this.socket_client = socket_client;
- }
- // Méthode de modification du paramètre
- public void SetParam(Socket param)
- {
- this.socket_client = param;
- }
- //fonction trhead
- public static void Proxy()
- {
- //[ici je veut utiliser socket_client, mais je n'y arrive pas !]
- }
- }
|
L'appel de mon thread se fait ainsi :
Code :
- MyProxyHandle ProxyHandle = new MyProxyHandle(socket_client);
- Thread T = new Thread(new ThreadStart(MyProxyHandle.Proxy));
- 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
---------------
Il faut arreter l'informatique le jour où l'on trouve 1024g dans 1kg