У меня есть несколько файлов, которые я передаю по TCP.Однако когда я пытаюсь выполнить их, появляется всплывающее окно с сообщением, что я должен связаться с разработчиком, чтобы получить подходящую версию для моего компьютера.Файлы должны быть переданы правильно, поэтому мне интересно, в чем проблема.
ОС сервера: Windows Server 2016
ОС моего ПК: Windows 10
Код сервера
private void SendLauncherFiles(NetworkStream stream)
{
TCPManager manager = new TCPManager();
Console.WriteLine("Sending Launcher files");
string path = System.AppDomain.CurrentDomain.BaseDirectory;
path += "LauncherFiles\\";
string[] extensions = { "LegitAimLauncher.exe", "Bleak.dll", "Jupiter.dll", "PeNet.Asn1.dll", "PeNet.dll" };
for(int i = 0; i < extensions.Length; i++)
{
path += extensions[i];
byte[] bFileData = File.ReadAllBytes(path);
string newPath = path.Replace(extensions[i], "");
path = newPath;
manager.SendInt(bFileData.Length, stream);
stream.Write(bFileData, 0, bFileData.Length);
}
}
Код клиента
private void ReceiveFiles(NetworkStream stream)
{
TCPManager manager = new TCPManager();
string path = System.AppDomain.CurrentDomain.BaseDirectory;
path += "LauncherFiles\\";
string[] extensions = { "LegitAimLauncher.exe", "Bleak.dll", "Jupiter.dll", "PeNet.Asn1.dll", "PeNet.dll" };
for(int i = 0; i < extensions.Length; i++)
{
path += extensions[i];
int length = manager.GetInt(stream);
byte[] bFileData = new byte[length];
stream.Read(bFileData, 0, bFileData.Length);
File.WriteAllBytes(path, bFileData);
string newPath = path.Replace(extensions[i], "");
path = newPath;
}
}
TCPManager
public void SendInt(int data, NetworkStream stream)
{
byte[] bData = BitConverter.GetBytes(data);
stream.Write(bData, 0, bData.Length);
}
public int GetInt(NetworkStream stream)
{
byte[] bData = new byte[sizeof(int)];
stream.Read(bData, 0, bData.Length);
int Data = BitConverter.ToInt32(bData, 0);
return Data;
}
РЕДАКТИРОВАТЬ: Забыли проверитьдля размера файла.Все файлы имеют размер нулевого байта, поэтому при отправке должна быть ошибка.