6 votes

Application client-serveur avec .NET et Xamarin

J'ai cherché sur Internet pendant de nombreuses heures mais je n'ai rien trouvé qui corresponde à mon cas.

Je veux simplement mettre en œuvre une application serveur/client avec TCP ou UDP où mon application Android (Xamarin) agit comme un serveur et mon application .NET comme un client. Comme je n'ai pas beaucoup d'expérience dans le développement d'applications et pas d'expérience avec Xamarin, je cherchais un exemple. Tout ce que j'ai trouvé, c'est ça :

http://www.codeproject.com/Articles/340714/Android-How-to-communicate-with-NET-application-vi

Tout d'abord, c'est l'inverse (serveur sur .NET et client en tant qu'application) et en plus c'est pour Android Studio donc il est difficile pour moi de traduire ces choses dans Xamarin sans erreurs.

Quelqu'un peut-il m'aider et me donner un exemple pour résoudre mon problème ?

Merci !

5voto

SushiHangover Points 47109

Sur Xamarin.Android vous pouvez utiliser toutes les classes de socket ordinaires de .Net :

Espaces de noms :

using System.Net;
using System.Net.Sockets;

Exemple :

IPHostEntry ipHostInfo = Dns.GetHostEntry (Dns.GetHostName ());
IPAddress ipAddress = ipHostInfo.AddressList [0];
IPEndPoint localEndPoint = new IPEndPoint (ipAddress, 11000);
System.Diagnostics.Debug.WriteLine(ipAddress.ToString());
// Create a TCP/IP socket.
Socket listener = new Socket (AddressFamily.InterNetwork,
                     SocketType.Stream, ProtocolType.Tcp);

AndroidManifest.xml Les permissions requises sont :

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Le site MSDN Socket de serveur asynchrone fonctionne comme un exemple de copier/coller sans aucune modification.

c'est-à-dire

En utilisant le code MSDN, vous pouvez appeler la méthode statique, AsynchronousSocketListener.StartListening dans un fil de discussion pour commencer à écouter sur le port 11000 défini dans le fichier AsynchronousSocketListener classe.

new Thread (new ThreadStart (delegate {
    AsynchronousSocketListener.StartListening();
})).Start ();

Une fois qu'il est exécuté sur votre appareil/émulateur, vous pouvez vous connecter par telnet à votre serveur de socket TCP Android :


>telnet 10.71.34.100 11000

Trying 10.71.34.100...
Connected to 10.71.34.100.
Escape character is '^]'.

Une fois connecté, tapez dans This is a test<EOF> et l'Android lui renverra un écho :

This is a test<EOF>

2voto

Softlion Points 3410

Vous faites cela comme dans un .net normal, sauf que vous devez demander des autorisations pour utiliser les sockets.

Il existe des tonnes d'exemples simples de création d'une connexion tcp d'écoute en c#.

Le problème que vous rencontrerez est de connaître l'adresse IP de votre serveur (dans le téléphone) car elle est susceptible de changer souvent lorsque l'utilisateur se déplace.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X