作者ukyoGoGo (=.=)
看板C_Sharp
标题[问题] c# Socket在 Win8,Win10 传图的问题
时间Fri Aug 18 21:20:18 2017
各位前辈好
目前遇到一个问题...
使用c# WinForm Socket (vs2010) 传图至 APP
在Win7(专业版)的环境下,APP收图都正常
但在WIN8 及 WIN10(home) 的环境下
APP=>decodeByteArray 出来的BMP 都是null
除了作业系统不同以外,其它的环境都一致
对照了一下byte的内容,发现Win8 Win10 的环境下
APP收到Byte[]的根本就不对了(每次都不同,而且带有负数)
但WIN7发送的Byte[] ,每次APP收到的内容就会一致
Byte[]的内容,直到CoSocket.Send(byImg);时都没问题
(win7,8,10都一致)
感觉是传出後,才出错
不过若传文字的话,Win7,8,10都没问题
程式码如下:
Image Imgtmp = Image.FromFile("j:\\pc.jpg");
Byte[] byImg = imageToByteArray(Imgtmp);
CoSocket.Send(byImg); <===send的时候,有确定连线正常
-----
public static byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
烦请各位先进们帮忙,谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.207.111
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1503062421.A.480.html
※ 编辑: ukyoGoGo (114.34.207.111), 08/18/2017 21:30:07
※ 编辑: ukyoGoGo (114.34.207.111), 08/18/2017 21:33:24
1F:推 J002: 有看receive出来的东西吗? 08/18 22:20
2F:推 pzyc79: return ms.ToArray()前加一段 ms.Position = 0; 试试看? 08/19 17:57