C# 关于HttpListener输入流无法读取的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 关于HttpListener输入流无法读取的问题相关的知识,希望对你有一定的参考价值。
以下代码能正常读取:
客户端:
byte[] buffer = new byte[fs.Length];//分配内存
fs.Read(buffer, 0,(int)fs.Length);//读文件
var v = Encoding.UTF8.GetBytes(Convert.ToBase64String(buffer));//编码
var r = webClient.UploadData(url, "POST", v);//发送
服务端
System.IO.Stream s = h.Request.InputStream;//获取流
System.IO.StreamReader r = new System.IO.StreamReader(s,Encoding.UTF8);//解码
var v = (Convert.FromBase64String(r.ReadToEnd()));//读取
fs.Write(v, 0, v.Length);//写文件
更改为以下代码时:
客户端:
byte[] buffer = new byte[fs.Length];//分配内存
fs.Read(buffer, 0,(int)fs.Length);//读文件
var r = webClient.UploadData(url, "POST", buffer);//发送
服务端:
System.IO.Stream s = h.Request.InputStream;//获取流
byte[] buffer = new byte[s.Length];//分配内存
fs.Write(buffer, 0, buffer.Length);//写文件
会出现:该流无法查找操作。
网上搜索了相关内容:
更改为一下代码:
服务端:
System.IO.Stream s = h.Request.InputStream;//获取流
BufferedStream bs = new BufferedStream(s);//转为内存流
byte[] buffer = new byte[1024];//分配内存
while ((i =bs.Read(buffer, 0, buffer.Length))>0) fs.Write(buffer, 0, i); //写文件
仍然有以上错误。
求大神指教。谢谢!
以上漏写S.ReadBlock(buffer, 0, buffer.Length),出问题的代码在s.Length位置,修改后,bs.Read(buffer, 0, buffer.Length)读取返回值为0
比如你监听80,可是80给其他程序(IIS等),你就不能再监听了。换个其他端口吧追问
不存在端口的问题,服务端获取数据时,string filesubPath = h.Request.Headers.Get("FilePath");头数据的自定义内容都能正常获取。
参考技术A fo是一个与G相同大小的矩阵,矩阵的每一位是0或1的逻辑值; 是1说明G的该位置上的元素大于100,是0说明G的该位置上的元素小于等于100。以上是关于C# 关于HttpListener输入流无法读取的问题的主要内容,如果未能解决你的问题,请参考以下文章