从流里读数据到字节数组不够的为啥全为\0了
using (Stream inputStream = request.InputStream)
{
byte[] bytes = new byte[4096];
int iread = 0;
//循环从数据流中获取请求所提交的数据,存入字节数组
while (true)
{
iread = inputStream.Read(bytes, 0, 1024);
if (iread == 0)
break;
}
//将获取的字节数组转换成固定字符集的字符串
string requestParam = encoding.GetString(bytes);
requestParam内容最后为:测容\0\0\0\0\0\0\0\0.....
我抛到界面上显示,就是因为多了后面那些0 使用\r\n都不能换行了
this.txtServerReceiveMsg.AppendText("接受到客户端请求:" +requestParam +"\r\n");
4回答
-
萧十郎
.net framework 4.0 的stream 好像可以截断, 就是说 iread 是你读到的 数, 8 ,9 啊什么的。 楼上的函数应该是正确的。 3.5 stream 好像是不行, iread 就一直是1024.这时候需要咱自己手动截断
-
森栏
我看不出这里有任何问题。字符串后边的结束符\0不影响输出,就是说你可以忽略这些\0。别烦恼了:)