У меня проблемы с передачей файла клиенту из серверной программы.Несколько проблем, которые я хотел бы решить.Во-первых, я делаю байтовый массив размером 6000 байтов, и его размер всегда такой.Есть ли способ сохранить правильный размер файла?Также с тем, как код сейчас, программа зависает.Это работает, когда я вынимаю его из цикла while на стороне клиента.Помогите !!
Клиент:
private void button1_Click(object sender, EventArgs e)
{
BinaryWriter binWriter;
int i = -1;
Byte[] bytes = new Byte[6000];
NetworkStream clientStream = connTemp.GetStream();
byte[] outstream = Encoding.ASCII.GetBytes(txtMessage.Text);
clientStream.Write(outstream, 0, outstream.Length);
while (i != 0)
{
try
{
if (clientStream.CanRead)
{
i = clientStream.Read(bytes, 0, bytes.Length);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
break;
}
}
binWriter = new BinaryWriter(File.Open("C:\\SeanLaunch\\log.rxlog",FileMode.Create));
binWriter.Write(bytes);
binWriter.Close();
}
}
Сервер:
Byte[] fileToSendAsByteArray = new Byte[6000];
fileToSendAsByteArray = File.ReadAllBytes("C:\\Launch\\Test.rxlog");
stream.Write(fileToSendAsByteArray, 0, fileToSendAsByteArray.Length);
РЕДАКТИРОВАТЬ !!!: Я исправил проблему с циклом