Stap 12: Extra2: Client code explaination
Deze code is ook niet zo makkelijk te lezen als de server een.
Allereerst zult u opmerken dat er een hostname IP-adres, dat is het ip van uw Edison. Als u het bent vergeten kunt u "ifconfig" in putty in de linux terminal typen en het zal tonen onder "wlan0".
Daarna is er een Async-procedure die proberen zal om te verbinden op de serverpoort dat we hebben ingesteld voordat (4094), als de aanroep slaagt, zal de "datawriter" sincronize het spel.
Het beste ding dat u met deze code doen kunt is te proberen het door uzelf, niet kopiëren en plakken vanaf de onderkant van deze pagina, tenzij de link naar beneden krijgt, de visual studio-project easyer is te gebruiken en er problemen met pre opmaak zijn.
De belangrijkste code voor Windows Phone client programma volgt:
met behulp van systeem;
met behulp van System.Collections.Generic; met behulp van System.Linq; met behulp van System.Text; met behulp van Windows.Networking.Sockets; met behulp van System.Threading.Tasks; met behulp van System.Threading; met behulp van System.Net; met behulp van Windows.Networking; met behulp van Windows.Storage.Streams; met behulp van System.Diagnostics;
naamruimte PhoneApp1 {class SocketClient {privé StreamSocket clientSocket;
openbare async taak Connect() {probeer {clientSocket = nieuwe StreamSocket(); HostName hostname = nieuwe HostName("10.2.1.80"); Debug.WriteLine ("Cerco di connettermi"); wachten op clientSocket.ConnectAsync (hostname, "4094"); Debug.WriteLine ("Connessione effettuata"); } catch (Exception uitzondering) {schakelaar (SocketError.GetStatus (uitzondering. HResult)) {SocketErrorStatus.HostNotFound kast: break; default: breken;}} terug van 10; }
openbare async taak Send(string data) {DataWriter writer = new DataWriter(clientSocket.OutputStream);
schrijver. WriteString(data); wachten op de schrijver. StoreAsync(); terug van 10; }
openbare async taak Receive() {tekenreeksgegevens; DataReader reader = new DataReader(clientSocket.InputStream); lezer. InputStreamOptions = InputStreamOptions.Partial; var graaf = lezer te wachten staan. LoadAsync(512); gegevens = lezer. ReadString(count); retourneren van gegevens; } openbare void Close() {clientSocket.Dispose();}} }