经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C# receive 接收的字符串 对比不相等的问题
来源:cnblogs  作者:引歌  时间:2018/12/13 9:37:25  对本文有异议

背景:

  最近写了一个C/S架构的 C# Socket 通讯项目,服务端,客户端弄通了之后,客户端发送给服务端后,服务端回复一个字符串告诉客户端确认收到了。问题就在这。

问题:

  一开始,我让服务端回复了一个拉阿伯数字9,客户端通过byte(一个字节)数组接收后转换成UTF8的string字符串,和客户端声明的字符串“9”对比,然后写入日志的时候,发现都正常发送了,但是日志记录的全是失败,就意味着对比的时候全是false,我就郁闷了,查了查资料,有的说是编码问题,我于是把客户端声明的字符串也转成了UTF8的字符串,但是对比还是false,debug追踪下来,两个字符串全是“9”,没发现什么不一样,然而对比结果就是false。对比byte也是false。后来把“9”改成了字母“a”,结果就正确了。由于本人是Java开发,C#才刚练手不久,也没弄懂,在此记录一下,希望大神能给指点一下。

 

代码如下:

  1. //接收服务端消息,确认发送成功
  2. byte[] result = new byte[1];
  3. string str = "a";
  4. byte[] rstr = Encoding.UTF8.GetBytes(str);
  5. string newStr = Encoding.UTF8.GetString(rstr,0,str.Length).ToString().Trim();
  6. int reStr = PDASocket.Receive(result);
  7. string stringRtn = Encoding.UTF8.GetString(result, 0, result.Length).ToString().Trim();
  8. if (!string.IsNullOrEmpty(stringRtn))
  9. {
  10. label19.Text = stringRtn;
  11. }
  12. if (stringRtn == newStr)
  13. {
  14. sendLog = "发送成功";
  15. }
  16. else
  17. {
  18. sendLog = "发送失败";
  19. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号