Dryper Skrevet 22. september 2008 Del Skrevet 22. september 2008 Heisann. jeg driver for tiden med komunikasjon i C# og har kommt et "langt" steg når det gjelder enveis kommunikasjon. men nå må jeg videre. Jeg har letet en stund etter et FORKLARENDE tutorial på hvordan sockets fungerer og hvorfor det er slik der, uten hell. jeg lurer da på om dere har noen gode forslag til tutorials bøker innen dette? TAKKER så mye.. Dryper Lenke til kommentar
HDSoftware Skrevet 22. september 2008 Del Skrevet 22. september 2008 Heisann. jeg driver for tiden med komunikasjon i C# og har kommt et "langt" steg når det gjelder enveis kommunikasjon. men nå må jeg videre. Jeg har letet en stund etter et FORKLARENDE tutorial på hvordan sockets fungerer og hvorfor det er slik der, uten hell. jeg lurer da på om dere har noen gode forslag til tutorials bøker innen dette? TAKKER så mye.. Dryper Socket er egentlig ikke så komplisert. Det finnes en del gode eksempler på MSDN som du bør kunne få noe ut av. Det som gjør dette litt mere komplisert for deg etter hvert er at du vil trenge å tenke asynkron komunikasjon fordi når du setter igang en socket så tar den over tråden din. Det er fordi den er en loop som leser nettet ditt. Det betyr at programmet ditt oppfører seg som om det går i heng. Løsningen er grei nok, det er bare å sparke igang en ny tråd som denne "løkka" jobber på og dermed kan du fortsette andre rutiner. Men som sagt, sjekk MSDN så finner du masse eksempler på socket programmering. Du kan også jukse litt ved å dra inn WinSock v6 som en komponent. Men jeg misstenker at denne blir borte fra Windows før eller siden. WinSock6 er en OCX som er utrolig enkel å kode mot Lenke til kommentar
Dryper Skrevet 22. september 2008 Forfatter Del Skrevet 22. september 2008 (endret) Jeg bør vel egentlig lære meg det som er "inn" .. kan jo gi et lite eks av det jeg ikke fatter. //Type byte [] buffer = new byte [4]; buffer = BitConverter.GetBytes((int)cmd.CommandType); this.networkStream.Write(buffer , 0 , 4); this.networkStream.Flush(); //Sender IP byte [] senderIPBuffer = Encoding.ASCII.GetBytes(cmd.SenderIP.ToString()); buffer = new byte [4]; buffer = BitConverter.GetBytes(senderIPBuffer.Length); this.networkStream.Write(buffer , 0 , 4); this.networkStream.Flush(); this.networkStream.Write(senderIPBuffer, 0, senderIPBuffer.Length); this.networkStream.Flush(); //Sender Name byte [] senderNameBuffer = Encoding.Unicode.GetBytes(cmd.SenderName.ToString()); buffer = new byte [4]; buffer = BitConverter.GetBytes(senderNameBuffer.Length); this.networkStream.Write(buffer , 0 , 4); this.networkStream.Flush(); this.networkStream.Write(senderNameBuffer, 0, senderNameBuffer.Length); this.networkStream.Flush(); //Target byte [] ipBuffer = Encoding.ASCII.GetBytes(cmd.Target.ToString()); buffer = new byte [4]; buffer = BitConverter.GetBytes(ipBuffer.Length); this.networkStream.Write(buffer , 0 , 4); this.networkStream.Flush(); this.networkStream.Write(ipBuffer , 0 , ipBuffer.Length); this.networkStream.Flush(); //Meta Data. if ( cmd.MetaData == null || cmd.MetaData == "" ) cmd.MetaData = "\n"; byte [] metaBuffer = Encoding.Unicode.GetBytes(cmd.MetaData); buffer = new byte [4]; buffer = BitConverter.GetBytes(metaBuffer.Length); this.networkStream.Write(buffer , 0 , 4); this.networkStream.Flush(); this.networkStream.Write(metaBuffer, 0, metaBuffer.Length); this.networkStream.Flush(); Dette er noe jeg fant på CodeProject. og her er det et par tulleting jeg ikkje skjønner... byte [] metaBuffer = buffer = BitConverter.GetBytes(ipBuffer.Length); EDIT: alt med buffer i det heletatt Hva vil disse si? hvorfor byte? hva skal det være godt for? og meta buffer.. hva er dette. Takker Dryper Endret 22. september 2008 av Dryper Lenke til kommentar
HDSoftware Skrevet 23. september 2008 Del Skrevet 23. september 2008 Jeg bør vel egentlig lære meg det som er "inn" .. kan jo gi et lite eks av det jeg ikke fatter..... byte [] metaBuffer = buffer = BitConverter.GetBytes(ipBuffer.Length); EDIT: alt med buffer i det heletatt Hva vil disse si? hvorfor byte? hva skal det være godt for? og meta buffer.. hva er dette. Takker Dryper Vell, [] betyr en array og som du sikkert vet så jobber en datamaskin med nuller og enere (binære tall). I en BYTE er det plass til 8 BIT og en BYTE kan holde et hvilket som helst tall mellom 0 og 255. Det finnes ikke noe som heter bokstaver for en datamaskin. En STRING f.eks. er jo bare en stor samling av tall. A = 65, B = 66, C = 67 o.s.v. Et buffer er bare et mellomlagrings område der du kan skrive og lese data som skal sendes eller mottas. Lenke til kommentar
Dryper Skrevet 23. september 2008 Forfatter Del Skrevet 23. september 2008 aha... jo jeg skjønner.. skal se litt på det der Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå