Hej, jag har nyss börjat med C# och håller på att bygga en Klient/Server applikation med sockets.
Har lite problem med den här koden:
Byte[] recieve = new Byte[64];
int i = mySocket.Receive(recieve, recieve.Length, 0);
string rece = System.Text.Encoding.ASCII.GetString(recieve);
När jag mottar en sträng som är 4 bytes lång (ett kommando till servern) och vill jämföra detta kommando i en if-sats fungerar inte detta, eftersom strängen inte bara består utav de 4 bytesen, utan även 60 "null-tecken". Har försökt använda denna funktion:
char[] unwanted = {' ',' ',' '};
string cmd = rece.TrimEnd(unwanted);
(Är lite osäker med den där arrayen med tre mellanrum, fick koden från en websida) Detta hjälper dock inte ett dugg, utan alla "mellanrum" i strängen är kvar. Har testat rece.Remove(4,60) och det funkar utmärkt, men vad händer när jag skickar ett kommando som är 10 bytes, hur gör jag då? Kan naturligtvis standardisera till 5 bytes eller nåt sånt, och aldrig göra arrayen recieve större än 5 bytes, men jag vill helst kunna ha läsliga kommandon skickade till servern, främst ur kodläslighetssynpunkt.
Skulle vara tacksam för hjälp med detta.