Клиент-сервер - Удаленный хост принудительно разорвал существующее подключение - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Есть два приложения клиент и сервер, при передаче сообщений выдает ошибку: Удаленный хост принудительно разорвал существующее подключение! Не могу понять в чем дело? Вот здесь происходит отправка:
Листинг программы
  1. double Poch = (Math.Exp((n + 1) * Math.Log(a))) / (fact(n) * (n - a));//Вероятность того, что в узле будет очередь
  2. double Loch = (((Math.Exp((n + 1) * Math.Log(a))) * p0) / (n * fact(n))) * (1 / Math.Exp(2 * Math.Log(1 - a / n)));//Среднее число заявок в очереди на обслуживание
  3. double Lsist = Loch + a;//Среднее число находящихся в системе заявок
  4. double Toch = 1 / l * Loch;//Средняя продолжительность пребывания заявки в очереди
  5. double Tsist = 1 / l * Lsist;//Средняя продолжительность пребывания заявки в системе
  6. p0.ToString("0.#");
  7. Poch.ToString("0.#");
  8. Loch.ToString("0.#");
  9. Lsist.ToString("0.#");
  10. Toch.ToString("0.#");
  11. Tsist.ToString("0.#");
  12. string themsg = String.Format("{0};{1};{2};{3};{4};{5}", p0, Poch, Loch, Lsist, Toch, Tsist);
  13. byte[] msg = Encoding.ASCII.GetBytes(themsg);
  14. handler.Send(msg);
Здесь получение:
Листинг программы
  1. bytesrec = ssend.Receive(bytes);// на этом месте программа прерывается в ошибкой описанной выше
  2. ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec);
  3. wansv = ansv.Split(';');
  4. textBox5.Text = wansv[0];
  5. textBox6.Text = wansv[1];
  6. textBox9.Text = wansv[2];
  7. textBox10.Text = wansv[3];
  8. textBox11.Text = wansv[4];
  9. textBox12.Text = wansv[5];
Возможно такое, что размер передаваемых данных превышает допустимый?

Решение задачи: «Клиент-сервер - Удаленный хост принудительно разорвал существующее подключение»

textual
Листинг программы
  1. using System;
  2. using System.Net;
  3. using System.Net.Sockets;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Windows.Forms;
  11.  
  12. namespace SClient
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.  
  21.         private void button1_Click(object sender, EventArgs e)
  22.         {
  23.             byte[] bytes = new byte[1024];
  24.  
  25.             if (Convert.ToDouble(textBox4.Text) == 0)//Если количество каналов равно 0, то выводим сообщение об ошибке 404
  26.             {
  27.                 MessageBox.Show("404");
  28.             }
  29.             else
  30.             {
  31.                try//Инструкция для поиска исключительных ситуаций
  32.                 {
  33.                     string wrip = textBox1.Text;
  34.                     IPHostEntry iphost = Dns.Resolve(wrip);//Поиск подходящего ip адреса для обслуживания
  35.                     IPAddress ipaddr = iphost.AddressList[0];//Сохранение списка адресов устройства
  36.                     IPEndPoint ipendpoint = new IPEndPoint(ipaddr, 1234);//Подготовка адреса локальной конечной точки
  37.                     Socket ssend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Создание потокового сокета
  38.                     ssend.Connect(ipendpoint);//Соединение сокета с удаленной конечной точкой
  39.                     string themsq = String.Format("{0};{1};{2}", textBox2.Text, textBox3.Text, textBox4.Text);
  40.                     byte[] msg = Encoding.ASCII.GetBytes(themsq);
  41.                     ssend.Send(msg);
  42.                     int bytesrec = ssend.Receive(bytes);
  43.                     string ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec);
  44.                     string[] wansv = ansv.Split(';');
  45.                                
  46.                                                
  47.                     listBox1.Items.Clear();
  48.                     int n = Convert.ToInt32(textBox4.Text);
  49.                     for (int i = 1; i <= n; i++)
  50.                     {
  51.                         listBox1.Items.Add("Р" + i + ":  " + wansv[i]);
  52.                     }
  53.  
  54.                     listBox2.Items.Clear();
  55.                     for (int i = 1; i <= n; i++)
  56.                     {
  57.                         listBox2.Items.Add("Р" + i + ":  " + wansv[i]);
  58.                     }
  59.                    
  60.                     bytesrec = ssend.Receive(bytes);
  61.                     ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec);
  62.                     wansv = ansv.Split(';');
  63.  
  64.                     listBox3.Items.Clear();
  65.                     for (int i = 1; i <= 4; i++)
  66.                     {
  67.                         listBox3.Items.Add("Р" + i + ":  " + wansv[i]);
  68.                     }
  69.  
  70.                     listBox4.Items.Clear();
  71.                     for (int i = 1; i <= 4; i++)
  72.                     {
  73.                         listBox4.Items.Add("Р" + i + ":  " + wansv[i]);
  74.                     }
  75.                                              
  76.  
  77.                     int zayav = 1500;//Количество заявок, которые необходимо обслужить
  78.                     int Och = 0;
  79.                     double t = 0;
  80.                     string f = null;
  81.                     string date = null;
  82.                     Random r = new Random();
  83.                     for (int i = 0; i <= zayav; i++)
  84.                     {
  85.                             t = t - Math.Log(r.NextDouble()) / Convert.ToDouble(textBox2.Text); //Вычисление времени работы системы
  86.                             date = Convert.ToString(t);
  87.                             msg = Encoding.ASCII.GetBytes(date);
  88.                             ssend.Send(msg);
  89.                             bytesrec = ssend.Receive(bytes);
  90.                             f = Encoding.ASCII.GetString(bytes, 0, bytesrec);
  91.                             if (f == "false")
  92.                             {
  93.                                 Och++; //Количество заявок в очереди
  94.                             }
  95.                     }
  96.                    
  97.                     msg = Encoding.ASCII.GetBytes("fin");
  98.                     ssend.Send(msg);
  99.                     bytesrec = ssend.Receive(bytes);
  100.                     ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec);
  101.                     wansv = ansv.Split(';');
  102.                                      
  103.                     textBox17.Text = wansv[0];
  104.                     textBox18.Text = wansv[1];
  105.                     textBox19.Text = wansv[2];
  106.                     textBox20.Text = wansv[3];
  107.                     textBox5.Text = wansv[4];
  108.                     textBox6.Text = wansv[5];
  109.                     textBox9.Text = wansv[6];
  110.                     textBox10.Text = wansv[7];
  111.                     textBox11.Text = wansv[8];
  112.                     textBox12.Text = wansv[9];
  113.                     textBox13.Text = wansv[4];
  114.                     textBox14.Text = wansv[5];
  115.                     textBox21.Text = Convert.ToString(t);
  116.                     textBox22.Text = Convert.ToString(zayav);
  117.                                  
  118.                   }
  119.                 catch (Exception)
  120.                {
  121.                     MessageBox.Show("Exception");
  122.                }
  123.             }
  124.         }
  125.     }
  126. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы