Я пытаюсь отправить несколько файлов на сервер каждые 2 секунды, и после отправки файла он удаляется, и программа перезапускается, чтобы снова сгенерировать файл, который необходимо снова отправить на сервер.
Но он работает до тех пор, пока сервер не будет подключен к сети ... В случае перезапуска сервера все функции программы будут работать нормально, но когда эта функция вызывается, она продолжает отображать "Невозможно установить соединение, поскольку целевой компьютерактивно отказывался от него " независимо от того, когда сервер подключается к сети между ..
private void sendfile()
{
timer.Stop();
RegistryKey theLocalMachine = Registry.LocalMachine;
RegistryKey theSystem2 = theLocalMachine.OpenSubKey(@"SOFTWARE\\NetworkUsagemonitoring\\", true);
RegistryKey interfacekey4 = theSystem2.OpenSubKey("Usagerecorder", true);
string serverno = interfacekey4.GetValue("serverno").ToString();
for (int i = 0; i < netarr1.Length; i++)
{
for (int j = 0; j < netarr2.Length; j++)
{
if (netarr1[i].Name == netarr2[j])
{
if (recorded[j] == 1)
{
try
{
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse(serverno), 5656);
Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
if (File.Exists(@"C:\" + netarr1[i].Name + "_record.xml"))
{
fileName = (@"C:\" + netarr1[i].Name + "_record.xml");
fileName = fileName.Replace("\\", "/");
while (fileName.IndexOf("/") > -1)
{
filePath += fileName.Substring(0, fileName.IndexOf("/") + 1);
fileName = fileName.Substring(fileName.IndexOf("/") + 1);
}
byte[] fileNameByte = Encoding.ASCII.GetBytes(fileName);
if (fileNameByte.Length > 850 * 1024)
{
return;
}
byte[] fileData = File.ReadAllBytes(filePath + fileName);
byte[] clientData = new byte[4 + fileNameByte.Length + fileData.Length];
byte[] fileNameLen = BitConverter.GetBytes(fileNameByte.Length);
fileNameLen.CopyTo(clientData, 0);
fileNameByte.CopyTo(clientData, 4);
fileData.CopyTo(clientData, 4 + fileNameByte.Length);
clientSock.Connect(ipEnd);
clientSock.Send(clientData);
clientSock.Close();
recorded[j] = 0;
File.Delete(@"C:\" + netarr1[i].Name + "_record.xml");
}
else
{
UpdateNetwork_Interface();
}
}
catch (Exception ex)
{
LogEvent("No connection could be made because the target machine actively refused it", EventLogEntryType.Information);
break;
}
finally
{
j++;
}
}
else
{
UpdateNetwork_Interface();
}
}
}
}
}
Что мне нужно, чтобы сервер отключился или " Невозможно установить соединение, так как цельмашина активно отказалась: « отображается ... программа должна продолжить цикл и беспрепятственно перемещаться, пока сервер не подключится к сети и обновленный файл не будет отправлен на сервер.