Parti musikspelare. DiscoVeryMusic för vänner! (12 / 12 steg)
Steg 12: Extra2: klient kod explaination
Denna kod är väl inte så lätt att läsa som servern.
Först och främst kommer du att märka att det finns en hostname IP-adress, som är ip av din Edison. Om du inte kommer ihåg det kan du skriva "ifconfig" inuti kitt i linux terminal och det kommer att visa under "wlan0".
Efter som det finns ett Async förfarande som kommer att försöka ansluta på Serverport att vi har satt innan (4094), om anropet lyckas "datawriter" kommer sincronize leken.
Det bästa du kan göra med denna kod är att prova det själv, inte kopiera och klistra in längst ned på denna sida om inte länken får ner, visual studio-projekt är easyer att använda och det inte finns problem med pre-formatering.
Följande Windows Phone klienten program huvudkoden:
med hjälp av systemet.
använder System.Collections.Generic; använder System.Linq; använder System.Text; använder Windows.Networking.Sockets; använder System.Threading.Tasks; använder System.Threading; använder System.Net; använder Windows.Networking; använder Windows.Storage.Streams; använder System.Diagnostics;
namnområdet PhoneApp1 {klass SocketClient {private StreamSocket clientSocket;
offentliga async uppgift Connect() {försök {clientSocket = ny StreamSocket(); HostName hostname = nya HostName("10.2.1.80"); Debug.WriteLine ("Cerco di connettermi"); väntar på clientSocket.ConnectAsync (värdnamn, "4094"); Debug.WriteLine ("Connessione effettuata"); } fånga (undantag undantag) {switch (SocketError.GetStatus (undantaget. HResult)) {mål SocketErrorStatus.HostNotFound: bryta; standard: bryta;}} returnera 10. }
offentliga async uppgift Send(string data) {DataWriter författare = nya DataWriter(clientSocket.OutputStream);
författare. WriteString(data); vänta författare. StoreAsync(); returnera 10. }
offentliga async uppgift Receive() {strängdata; DataReader läsare = nya DataReader(clientSocket.InputStream); läsaren. InputStreamOptions = InputStreamOptions.Partial; var count = väntar läsaren. LoadAsync(512); data = läsare. ReadString(count); returnera data; {} public void Close() {clientSocket.Dispose();}} }