你在读取数据流的时候先判断下当前流中有多少字节(tempSocket.Available的可供读取的数据量),就创建多少字节的byte数组,不然的话,你这样读取的高余亏数据(例如:流中可供读取的数据量是100,你直接存戚神到b中,而你转换字符串时是将b全部转换,里面还有924个空字毁迅符)不能直接比较,需要把多余的空字符(你显示的长度是512就是这个原因)去掉后再比较才可以。
if (str.Equals("guest")) MessageBox.Show("尼玛余贺能不能成功一次啊!");
这步,加断点吵好,看一下str字符串内容,最好是升毁铅查看一下str的长度是否是5.
加个Trim试试?感觉你这编码没问题呀