We help IT Professionals succeed at work.

C# Comparing Strings from Byte Array

I'm fairly new to C# and not used it for while.

Have a server and client set up. I wish for the client to send a string which is compared at server against list of commands and if they match the server responds with that commands code etc.

Problem is whatever I send to server it doesn't equal the string being compared to, I'm sure I'm missing something or doing something wrong.

When debugging received is set as "A" in code but when compared received which is A against "A" the if statement sees them as different and just runs the else part.
while (!this.isStopped)
{
  try
  {
    s = this.listener.AcceptSocket();
    incomingBuffer = new Byte[100];
    bytesRead = s.Receive(incomingBuffer);
    received = Encoding.ASCII.GetString(incomingBuffer);
    
    if (received == "A")
    {
      // Run A Command Code
      message = Encoding.ASCII.GetBytes("Processed command");
      s.Send(message);
      }
      else
      {
        message = Encoding.ASCII.GetBytes("Couldn't understand command");
        s.Send(message);
      }
    }
}

Open in new window

Comment
Watch Question

Commented:

bytesRead = s.Receive( incomingBuffer );

received = Encoding.ASCII.GetString( bytesRead );


I'm not sure of that, but i think it is.
You can fix code:

bytesRead = s.Receive(incomingBuffer);
received = Encoding.ASCII.GetString(incomingBuffer);
To:
bytesRead = s.Receive(incomingBuffer);
received = Encoding.ASCII.GetString(incomingBuffer,0,bytesRead);

Author

Commented:
Fixed it straight away.

Thanks