PDA

View Full Version : سوال: ارسال تصویر و ذخیره ان با socketprogramming



amin_sltny
دوشنبه 30 دی 1392, 11:37 صبح
سلام دوستان من دارم یه برنامه می نویسم ه یکسری عکس را انتقال بده به کلاینت و آن ها را ذخیره کنه.
قطعه کد سرورم به این صورته:



byte[] SendingBuffer = null;
FileStream Fs = new FileStream(PathFile, FileMode.Open, FileAccess.Read);
int NoOfPackets = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(Fs.L ength) / Convert.ToDouble(BufferFiles.BufferSize)));
int TotalLength = (int)Fs.Length, CurrentPacketLength;
for (int i = 0; i < NoOfPackets; i++)
{
if (TotalLength > BufferFiles.BufferSize)
{
CurrentPacketLength = BufferFiles.BufferSize;
TotalLength = TotalLength - CurrentPacketLength;
}
else
CurrentPacketLength = TotalLength;
SendingBuffer = new byte[CurrentPacketLength];
Fs.Read(SendingBuffer, 0, CurrentPacketLength);
byte[] Keys = null;
if (i == 0)
Keys = Encoding.UTF8.GetBytes((int)SendKey.DownloadsAppIc on + Argumants[0] + "|");
else
Keys = Encoding.UTF8.GetBytes((int)SendKey.WriteByteAppIc on + Argumants[0] + "|" + CurrentPacketLength + "|");
byte[] Send = new byte[SendingBuffer.Length + Keys.Length];
Keys.CopyTo(Send, 0);
SendingBuffer.CopyTo(Send, Keys.Length);
Client.Write(Send);
}


وقطعه کد کلاینتمم به این صورته :

private void ReciveFile(string SaveFileName,byte[] data)
{
byte[] RecData = new byte[BufferFiles.BufferSize];
if (SaveFileName != string.Empty)
{
FileStream Fs = new FileStream(SaveFileName, FileMode.OpenOrCreate, FileAccess.Write);
Fs.Write(data, 0, data.Length);
Fs.Close();
}
}

private void AppendFile(string SaveFileName, byte[] data)
{
byte[] RecData = new byte[BufferFiles.BufferSize];
if (SaveFileName != string.Empty)
{
FileStream Fs = new FileStream(SaveFileName, FileMode.Append, FileAccess.Write);
Fs.Write(data, 0, data.Length);
Fs.Close();
}
}

از این دوتا تابع برای ایجاد فایل و نوشتن ادامه آنها بر بروی فایل استفاده کردم اما مشکل این جاست که تمام فایل به صورت کامل ارسال میشه اما وقتی من اون ار ذخیره می کنم و بازش می کنم با خطای invalid image مواجه می شم و عکس تصویر را به من نشون نمی ده لطفا کمک کنید!!

Mousavmousab
دوشنبه 30 دی 1392, 11:47 صبح
حجم تصویر ذخیهر شده 0 کیلو بایته؟
دقیق تر : حجم تصویر ارسال شده با تصویر دریافت شده چطوریه؟ مقایسه !!!

amin_sltny
دوشنبه 30 دی 1392, 11:56 صبح
حجم تصویر ذخیهر شده 0 کیلو بایته؟
دقیق تر : حجم تصویر ارسال شده با تصویر دریافت شده چطوریه؟ مقایسه !!!

هر دو 97.8 KB

amin_sltny
دوشنبه 30 دی 1392, 12:55 عصر
هر دو 97.8 KB

لطفا کمک کنید. خیلی ضروریه

amin_sltny
سه شنبه 01 بهمن 1392, 07:33 صبح
کسی نبود به من کمک کنه اگه میشه یه نمونه کد ارسا تصویر در سوکت پروگرمینگ برای من بذارید لطفا