“数据没有收到啊!”
“不会呀,这边发了!”
“我这边没有显示,你看。”
“......”
这两天来来回回就是这么几句话,问题处在哪?问题出在眼睛看到的,它是不是真的?
数据收没收到是基于数据接收到在控制台的回显(打印输出),但很容易忽略的是有些数据是显示不出来的,如换行、回车、制表符等;另外,还有就是C/C++对字符串的处理其实是字符数组加‘\0’,因此字符串的函数都是'\0‘做为结束标识。
若是网络传输过来的数据第一位是'\0',那么C/C++对此进行回显处理的话,是打印不出来任何信息,因为'\0'把后面的数据都给“隐藏”了。
总结,容易看到了往往不是真实的,在C/C++的开发环境下对数据的处理不能完全依赖字符串的函数,用原始的字符数组会好些。
“不会呀,这边发了!”
“我这边没有显示,你看。”
“......”
这两天来来回回就是这么几句话,问题处在哪?问题出在眼睛看到的,它是不是真的?
数据收没收到是基于数据接收到在控制台的回显(打印输出),但很容易忽略的是有些数据是显示不出来的,如换行、回车、制表符等;另外,还有就是C/C++对字符串的处理其实是字符数组加‘\0’,因此字符串的函数都是'\0‘做为结束标识。
若是网络传输过来的数据第一位是'\0',那么C/C++对此进行回显处理的话,是打印不出来任何信息,因为'\0'把后面的数据都给“隐藏”了。
总结,容易看到了往往不是真实的,在C/C++的开发环境下对数据的处理不能完全依赖字符串的函数,用原始的字符数组会好些。