这就是C#的BUG呢还是我不懂原理??socket返回的字符串无法正常运用字符串的运算符"+"!
- C# code
Socket sockets = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sockets.Connect(IPAddress.Parse("220.181.29.160"), 80); //注:可以换成任意有回复的ip或端口 byte[] bdata = Encoding.Default.GetBytes("get"); //注:可以换成任意有回复的应用 sockets.Send(bdata); int bufLen = sockets.ReceiveBufferSize; byte[] bData = new byte[bufLen]; int DataLen = sockets.Receive(bData); string reStrData = Encoding.ASCII.GetString(bData, 0, bData.Length); sockets.Close(); MessageBox.Show(reStrData + "BBBBBB"); //问题:6个"B"没有显示,为何? 注意:B可换成任意字符串/MessageBox也可以换成任意控件或其他类型 MessageBox.Show("BBBBBB" + reStrData); //6个"B"或其他字符串在前面时,正常显示出结果了
第一个 MessageBox 不加后面的字符串,这里用6个B举例。。。。restrdata最后面时正常的,我不懂为何,哪位好朋友能解释下原因吗?试过先string tmpstr=reStrData; 再 tmpstr+="BBBBBB";结果也是不行,反正是restrData后面的字符串都不显示。。。。
这鬼异的问题困扰我一年多了,半夜都睡不好觉起来发贴咨询下好朋友们!望不吝赐教,感激!
[解决办法]
字符串有个结束标志\0...