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 :
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DWORD WINAPI proxy (LPVOID psocket) { [...] //Recuperation de la valeur du socket (par pointeur) SOCKET * ps = (SOCKET *)psocket; SOCKET socket_client = *ps; [...] }
Je crée ma fonction proxy dans une autre classe :L'appel de mon thread se fait ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 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 !] } }
Ai-je fais une erreur ? Où ? Comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MyProxyHandle ProxyHandle = new MyProxyHandle(socket_client); Thread T = new Thread(new ThreadStart(MyProxyHandle.Proxy)); T.Start();
Pff, le passage du C++ au C# est plus compliqué qu'il me semblait !
Merci
Partager