Socket传输大文件是分段传吗?
是这样的,我做了一个图片传输功能,我先把图片转换为Byte数组,然后用Socket 传送,但是接收的的时候数组被分为好几段接收,这样我在接收时就不能转换出完整的图片了,还有我不知道这个图片转换成的byte是分几段传过来的,我的接收是写在while里的,不知道用什么方法组合起来。下面是我的代码,请各位大虾看看:
Socket socketHost = (Socket)socketClient;
while (true)
{
try
{
Thread.Sleep(50);
if (!socketHost.Connected)
{
socketHost.Close();
break;
}
if (isThreadQuit)
{
socketHost.Close();
break;
}
byte[] recData = new byte[10000];
int nRecCount = socketHost.Receive(recData); //读取
pictureBox1.Image = ReturnPhoto(recData); //转换为照片
Image image = ReturnPhoto(recData);
string ext = image.RawFormat.ToString();
string path = "D:\\123.jpg";
image.Save(path);
}
catch (Exception e)
{
}
}
public System.Drawing.Image ReturnPhoto(byte[] streamByte)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
现在代码只能写在while循环里面,因为写在外面根本就不执行,我这边一传输直接运行的是while里面的代码。