背景:

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

问题:

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

代码如下:

//接收服务端消息,确认发送成功
byte[] result = new byte[];
string str = "a";
byte[] rstr = Encoding.UTF8.GetBytes(str);
string newStr = Encoding.UTF8.GetString(rstr,,str.Length).ToString().Trim();
int reStr = PDASocket.Receive(result);
string stringRtn = Encoding.UTF8.GetString(result, , result.Length).ToString().Trim();
if (!string.IsNullOrEmpty(stringRtn))
{
label19.Text = stringRtn;
}
if (stringRtn == newStr)
{
sendLog = "发送成功";
}
else
{
sendLog = "发送失败";
}

C# receive 接收的字符串 对比不相等的问题的更多相关文章

  1. spring接收json字符串的两种方式

    一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...

  2. SQL Server ->> 字符串对比

    今天同事问我关于SQL Server在字符串尾随着空格时进行字符串对比的做法.关于这个问题正好在这里讲一下,就是SQL Server是按照ANSI/ISO SQL-92中的定义做字符串对比的. 在KB ...

  3. 蓝桥杯 基础练习 BASIC-15 字符串对比

    基础练习 字符串对比   时间限制:1.0s   内存限制:512.0MB 问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字 ...

  4. 代码实现从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt

    package com.loaderman.test; import java.util.Comparator; import java.util.Scanner; import java.util. ...

  5. 蓝桥杯vip 字符串对比

    蓝桥杯vip 字符串对比 题目如下 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei ...

  6. Java实现 蓝桥杯VIP 基础练习 字符串对比

    问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...

  7. 字符串对比 BASIC-15

    字符串对比 代码 import java.util.Scanner; /*给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等 ...

  8. js eval()函数 接收一个字符串,做为js代码来执行。 如: s='var d="kaka"'; 或者s=‘function (code){return code }’;

    eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法“{}”并不能返回一个值, ...

  9. springMVC 接收json字符串参数

    /** 前台js拼接了一个数组 myparam = [a,b,c]; 在ajax中直接 {"myparam":JSON.stringify(myparam)} 传入springMV ...

随机推荐

  1. C#数组--(Array类的属性和方法)

    Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义.Array 类提供了各种用于数组的属性和方法,可看作扩充了功能的数组(但不等同数组),可以使用Array类的属性来对数组 ...

  2. 解决安卓JNI native 线程不能正常退出问题二

    直面这个解决方法的可以看我转载的博客            https://www.cnblogs.com/Carlsblog/p/9438016.html 本方法是个投机取巧法,不过也解决了不能正常 ...

  3. Oracle启用和禁用触发器

    1.禁用 table_name 表的所有 trigger alter table table_name disable all triggers; 2.启用 table_name 表的所有 trigg ...

  4. vue 父子组件通信-props

    父组件:引用了ComBack组件 ComBack组件:引用了BasicInfor组件 先使用props获取父组件的headInfo这个对象,这里注意(default)默认返回值要用工厂形式返回 Bas ...

  5. 关于mfc学习小记(bug小记)

    关于控件问题 基本上出错的都是类型不为LPCTSTR 解决方式: 1.字符串转换 _T(str) 例:_T("你说的都对") 关于button控件 按照老旧的方式为其关联函数中添加 ...

  6. 创建nodejs服务

    1.终端窗口输入:npm init 2.终端输入:npm install 3.修改代码后重启服务:ctrl+c 启动服务:node 文件名.js

  7. 解决Mac应用程序软件不出现在Launchpad里面的方法

    新装了几个软件,可是打开Lauchpad之后却在里面找不到,真是烦人!然后尝试了以下方法: 1.重启电脑,没用: 2.尝试打开“应用程序(英文名称:Applications)”并找到安装的软件,然后直 ...

  8. 【调试基础】Part 2 文本字符

    01 字节存储顺序 大端:低字节存在高地址,高字节存在低地址.eg:IBM: 小端:低字节存在低地址,高字节存在高地址.eg:INTEL: 02 字符集 ASCII:128=26小写 + 26大写 + ...

  9. redis持久化数据的机制——转发

    转载:https://www.cnblogs.com/xingzc/p/5988080.html Redis提供的持久化机制(RDB和AOF)   Redis提供的持久化机制 Redis是一种面向“k ...

  10. bzoj1668

    题解: 简单dp 注意最后往后面多取几个 求个最小值 代码: #include<bits/stdc++.h> using namespace std; ; int n,m,f[N],a[N ...