Не отображаются данные переданные по сети - C#
Формулировка задачи:
подскажите в чем проблема
передаю данные по сети успешно без ошибок
принимаются вроде тоже
но вместо картинки получаю пустой файл или док-т, должен быть логотип а вместо этого белый экран
int df = strData.Length - 3;
strData = strData.Substring(3, df);
if (Writing == null)
{
Writing = File.OpenWrite(path1 + "" + nam);
byte[] Buffer = new byte[65535];
string base64string = Convert.ToBase64String(Encoding.UTF8.GetBytes(strData));
Buffer = Convert.FromBase64String(base64string);
Writing.Write(Buffer, 0, Buffer.Length);
}
else
{
int dfdfd = strData.Length;
byte[] Buffer = new byte[65535];/////
string base64string = Convert.ToBase64String(Encoding.UTF8.GetBytes(strData));
Buffer = Convert.FromBase64String(base64string);
Writing.Write(Buffer, 0, Buffer.Length);///////
}
if (strData.Length < 65535) Writing.Close();
При повторной попытке что то скачать вообще ничего не происходит как будто и не пыталась
Решение задачи: «Не отображаются данные переданные по сети»
textual
Листинг программы
private TcpListener Server;
private TcpClient remoteClient; private TcpClient localClient;
private Thread thClient; private Thread thServer;
const string soob = "001";
const string info = "002";
const string fail = "003";
private void btnServer_Click(object sender, EventArgs e)//кнопка сервер
{
Server = new TcpListener(IPAddress.Any, 6785);
Server.Start();
thServer = new Thread(() =>
{
remoteClient = Server.AcceptTcpClient();
SendData(soob, GetLocDir());
byte[] buffer = new byte[2048];
while (remoteClient.Connected)
{
Array.Clear(buffer, 0, buffer.Length);
remoteClient.GetStream().Read(buffer, 0, buffer.Length);
string strData = Encoding.Default.GetString(buffer);
int b = strData.IndexOf("\0");
b = b - 3;
var messege = strData.Substring(0, 3);
strData = strData.Substring(3, b);
this.Invoke((Action)(() =>
{
if (messege == soob)
{
try
{
string poddir = String.Join("/", Directory.GetDirectories(strData));/////подправить отображение
string file = String.Join("/", Directory.GetFiles(strData));/////подправить отображение
SendData(soob, poddir + "/" + file);
}
catch (Exception) { }
}
else if (messege == info)
{
FileInfo inf = new FileInfo(strData);
SendData(info, inf.Name + "@" + Convert.ToString(inf.Length));
FileStream Stream = File.OpenRead(strData);
byte[] Buffer = new byte[65535];
int BytesRead = -1;
while (BytesRead != 0)
{
BytesRead = Stream.Read(Buffer, 0, 65535);
SendData(fail, Convert.ToBase64String(Buffer));
}
Stream.Close();
}
}));
}
});
thServer.Start();
}
FileStream Writing = null;
string nam = ""; int size = 0;
private void btnConnect_Click(object sender, EventArgs e)//кнопка клиент
{
localClient = new TcpClient();
localClient.Connect("127.0.0.1", 6785);
thClient = new Thread(() =>
{
byte[] buffer = new byte[65538];
while (localClient.Connected)
{
Array.Clear(buffer, 0, buffer.Length);
localClient.GetStream().Read(buffer, 0, 65538);
string strData = Encoding.Default.GetString(buffer);
var messege = strData.Substring(0, 3);
this.Invoke((Action)(() =>
{
if (messege == soob)
{
int b = strData.IndexOf("\0");
b = b - 3;
strData = strData.Substring(3, b);
listView1.Clear();
string[] tx = strData.Split('/');
foreach (string s in tx)
{
listView1.Items.Add(s, 1);
ls.Add(s);
}
}
else if (messege == info)
{
int b = strData.IndexOf("\0");
b = b - 3;
strData = strData.Substring(3, b);
string[] tx = strData.Split('@');
nam = tx[0];
size = Convert.ToInt32(tx[1]+5);
textBox1.Text = tx[0];
textBox2.Text = tx[1];
}
else if (messege == fail)
{
int df = strData.Length - 3;
strData = strData.Substring(3, df);
if (Writing == null)
{
Writing = File.OpenWrite(Path.Combine(path1, nam));
}
byte[] Buffer = Encoding.UTF8.GetBytes(strData);
Writing.Write(Buffer, 0, Buffer.Length);
if (strData.Length < 65535) Writing.Close();
}
}));
}
});
thClient.Start();
SendData(soob, GetLocDir());
}