Bonjour,
Je précise que j'ai déjà cherché des solutions sur de nombreux forums... Sans succès, évidemment !
Dans le cadre d'un projet de fin d'études, je suis amené à développer une application dont l'interface doit être réalisée en Silverlight. Cette interface doit créer, envoyer et recevoir des données via des sockets vers un serveur local développé en java.
Le serveur est opérationnel, nous avons réalisé un programme client de test qui prouve que le serveur java fonctionne correctement.
Voici donc mon problème. J'ai besoin de créer un socket, d'y affecter des données et de les envoyer vers le serveur java.
Logiciel utilisé : Microsoft Blend 3, Windows XP
Voici le code source de mon c# silverlight :
Voici ce que j'essaye de faire : je veux établir la connexion puis envoyer des données au serveur java. Or, je n'ai même pas l'affichage de mon message "Dans on completed", ce qui signifie que la connexion a échouée. De plus, le serveur ne fait aucune trace indiquant une connexion.
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
23
24
25
26
27
28
29
30
31
32
33 Code C# : public void loadData() { IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("localhost"), 1050); HtmlPage.Window.Alert("IP : " + endPoint.ToString()); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); SocketAsyncEventArgs args = new SocketAsyncEventArgs(); args.UserToken = socket; args.RemoteEndPoint = endPoint; args.Completed += new EventHandler<SocketAsyncEventArgs>(OnSocketConnectCompleted); socket.ConnectAsync(args); } private void OnSocketConnectCompleted(object sender, SocketAsyncEventArgs e) { HtmlPage.Window.Alert("Dans on completed"); byte[] response = new byte[1024]; response[0] = 255; response[1] = 254; e.SetBuffer(response, 0, response.Length); e.Completed -= new EventHandler<SocketAsyncEventArgs>(OnSocketConnectCompleted); e.Completed += new EventHandler<SocketAsyncEventArgs>(OnSocketReceive); Socket socket = (Socket)e.UserToken; socket.ReceiveAsync(e); } private void OnSocketReceive(object sender, SocketAsyncEventArgs e) { HtmlPage.Window.Alert("Dans on receive"); }
Vous pouvez télécharger le serveur java et le client java qui test le serveur en cliquant ici. Le port du serveur et du client par défaut est 1050. Vous pouvez les changer en ajoutant un argument supplémentaire de votre choix.
Pouvez-vous m'aider à résoudre ce problème.
Merci d'avance.
Partager