Étape 12 : Extra2 : explication de code Client
Eh bien, ce code n’est pas aussi facile à lire que le serveur un.
Tout d’abord, vous remarquerez qu’il y a une adresse ip hostname, c’est l’adresse ip de votre Edison. Si vous ne m’en souviens, vous pouvez taper « ifconfig » à l’intérieur de mastic dans le terminal linux et il montrera sous « wlan0 ».
Après cela, il y a une procédure asynchrone qui tente de se connecter sur le port du serveur que nous avons mis en avant (4094), si l’appel réussit le « datawriter » sera sincronize la pièce.
La meilleure chose que vous pouvez faire avec ce code est d’essayer par vous-même, ne copier/coller du bas de cette page à moins que le lien descend, le projet visual studio est easyer à utiliser et il n’ya pas de problèmes avec la mise en forme de pré.
S’ensuit le code principal de programme client Windows Phone :
using System ;
à l’aide de System.Collections.Generic ; à l’aide de System.Linq ; using System.Text ; à l’aide de Windows.Networking.Sockets ; à l’aide de System.Threading.Tasks ; à l’aide de System.Threading ; à l’aide de System.Net ; à l’aide de Windows.Networking ; à l’aide de Windows.Storage.Streams ; using System.Diagnostics ;
namespace PhoneApp1 {class SocketClient {privé StreamSocket clientSocket ;
async public tâche Connect() {try {clientSocket = new StreamSocket() ; Nom d’hôte hostname = new HostName("10.2.1.80") ; Debug.WriteLine ("Cerco di connettermi") ; attendre clientSocket.ConnectAsync (nom d’hôte, « 4094 ») ; Debug.WriteLine ("Connessione effettuata") ; } catch (Exception System.Exception) {switch (SocketError.GetStatus (exception. HResult)) {case SocketErrorStatus.HostNotFound : break ; default : break;}} retour 10 ; }
async public tâche Send(string data) {DataWriter writer = new DataWriter(clientSocket.OutputStream) ;
écrivain. WriteString(data) ; attendent l’écrivain. StoreAsync() ; retour 10 ; }
async public tâche Receive() {données de type chaîne ; DataReader reader = new DataReader(clientSocket.InputStream) ; lecteur. InputStreamOptions = InputStreamOptions.Partial ; var nombre = attendent le lecteur. LoadAsync(512) ; données = reader. ReadString(count) ; retourner des données ; } public void Close() {clientSocket.Dispose();}} }