Paso 12: Extra2: explicación del código de cliente
Bien este código no es tan fácil de leer como el servidor.
En primer lugar te darás cuenta que hay una dirección de ip de un nombre de host, que es la ip de tu Edison. Si no la recuerda puede escribir "ifconfig" dentro de masilla en la terminal de linux y se mostrará en "wlan0".
Después de hay un procedimiento asincrónico que intentará conectarse en el puerto del servidor que hemos creado antes (4094), si la llamada tiene éxito la "datawriter" sincronizar el juego.
Lo mejor que puedes hacer con este código es probarlo por ti mismo, no copia y pega de la parte inferior de esta página a menos que obtiene el enlace de, el proyecto de visual studio es easyer para usar y no hay problemas con el formato de pre.
Sigue el código principal del programa cliente de Windows Phone:
utilizando el sistema;
utilizando System.Collections.Generic; utilizando System.Linq; utilizar System.Text; utilizando Windows.Networking.Sockets; utilizando System.Threading.Tasks; utilizando System.Threading; utilizar System.Net; utilizando Windows.Networking; utilizando Windows.Storage.Streams; utilizar System.Diagnostics;
Namespace PhoneApp1 {clase SocketClient {privado StreamSocket clientSocket;
async pública tarea Connect() {prueba {clientSocket = nuevo StreamSocket(); HostName hostname = nuevo HostName("10.2.1.80"); Debug.WriteLine ("Cerco di connettermi"); esperan clientSocket.ConnectAsync (nombre de host, "4094"); Debug.WriteLine ("Connessione effettuata"); } catch (excepción de la excepción) {switch (SocketError.GetStatus (excepción. HResult)) {caso SocketErrorStatus.HostNotFound: break; default: break;}} retorno 10; }
público async Send(string data) tarea {DataWriter escritor = new DataWriter(clientSocket.OutputStream);
escritor. WriteString(data); esperan el escritor. StoreAsync(); retorno 10; }
async pública tarea Receive() {cadena de datos; DataReader lector = new DataReader(clientSocket.InputStream); lector. InputStreamOptions = InputStreamOptions.Partial; var cuenta = esperan lector. LoadAsync(512); datos = lector. ReadString(count); devolver datos; público} void Close() {clientSocket.Dispose();}} }