Клиент-сервер - Удаленный хост принудительно разорвал существующее подключение - C#
Формулировка задачи:
Здравствуйте! Есть два приложения клиент и сервер, при передаче сообщений выдает ошибку: Удаленный хост принудительно разорвал существующее подключение! Не могу понять в чем дело?
Вот здесь происходит отправка:
Здесь получение:
double Poch = (Math.Exp((n + 1) * Math.Log(a))) / (fact(n) * (n - a));//Вероятность того, что в узле будет очередь double Loch = (((Math.Exp((n + 1) * Math.Log(a))) * p0) / (n * fact(n))) * (1 / Math.Exp(2 * Math.Log(1 - a / n)));//Среднее число заявок в очереди на обслуживание double Lsist = Loch + a;//Среднее число находящихся в системе заявок double Toch = 1 / l * Loch;//Средняя продолжительность пребывания заявки в очереди double Tsist = 1 / l * Lsist;//Средняя продолжительность пребывания заявки в системе p0.ToString("0.#"); Poch.ToString("0.#"); Loch.ToString("0.#"); Lsist.ToString("0.#"); Toch.ToString("0.#"); Tsist.ToString("0.#"); string themsg = String.Format("{0};{1};{2};{3};{4};{5}", p0, Poch, Loch, Lsist, Toch, Tsist); byte[] msg = Encoding.ASCII.GetBytes(themsg); handler.Send(msg);
bytesrec = ssend.Receive(bytes);// на этом месте программа прерывается в ошибкой описанной выше ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec); wansv = ansv.Split(';'); textBox5.Text = wansv[0]; textBox6.Text = wansv[1]; textBox9.Text = wansv[2]; textBox10.Text = wansv[3]; textBox11.Text = wansv[4]; textBox12.Text = wansv[5];
Возможно такое, что размер передаваемых данных превышает допустимый?
Решение задачи: «Клиент-сервер - Удаленный хост принудительно разорвал существующее подключение»
textual
Листинг программы
using System; using System.Net; using System.Net.Sockets; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace SClient { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { byte[] bytes = new byte[1024]; if (Convert.ToDouble(textBox4.Text) == 0)//Если количество каналов равно 0, то выводим сообщение об ошибке 404 { MessageBox.Show("404"); } else { try//Инструкция для поиска исключительных ситуаций { string wrip = textBox1.Text; IPHostEntry iphost = Dns.Resolve(wrip);//Поиск подходящего ip адреса для обслуживания IPAddress ipaddr = iphost.AddressList[0];//Сохранение списка адресов устройства IPEndPoint ipendpoint = new IPEndPoint(ipaddr, 1234);//Подготовка адреса локальной конечной точки Socket ssend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Создание потокового сокета ssend.Connect(ipendpoint);//Соединение сокета с удаленной конечной точкой string themsq = String.Format("{0};{1};{2}", textBox2.Text, textBox3.Text, textBox4.Text); byte[] msg = Encoding.ASCII.GetBytes(themsq); ssend.Send(msg); int bytesrec = ssend.Receive(bytes); string ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec); string[] wansv = ansv.Split(';'); listBox1.Items.Clear(); int n = Convert.ToInt32(textBox4.Text); for (int i = 1; i <= n; i++) { listBox1.Items.Add("Р" + i + ": " + wansv[i]); } listBox2.Items.Clear(); for (int i = 1; i <= n; i++) { listBox2.Items.Add("Р" + i + ": " + wansv[i]); } bytesrec = ssend.Receive(bytes); ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec); wansv = ansv.Split(';'); listBox3.Items.Clear(); for (int i = 1; i <= 4; i++) { listBox3.Items.Add("Р" + i + ": " + wansv[i]); } listBox4.Items.Clear(); for (int i = 1; i <= 4; i++) { listBox4.Items.Add("Р" + i + ": " + wansv[i]); } int zayav = 1500;//Количество заявок, которые необходимо обслужить int Och = 0; double t = 0; string f = null; string date = null; Random r = new Random(); for (int i = 0; i <= zayav; i++) { t = t - Math.Log(r.NextDouble()) / Convert.ToDouble(textBox2.Text); //Вычисление времени работы системы date = Convert.ToString(t); msg = Encoding.ASCII.GetBytes(date); ssend.Send(msg); bytesrec = ssend.Receive(bytes); f = Encoding.ASCII.GetString(bytes, 0, bytesrec); if (f == "false") { Och++; //Количество заявок в очереди } } msg = Encoding.ASCII.GetBytes("fin"); ssend.Send(msg); bytesrec = ssend.Receive(bytes); ansv = Encoding.ASCII.GetString(bytes, 0, bytesrec); wansv = ansv.Split(';'); textBox17.Text = wansv[0]; textBox18.Text = wansv[1]; textBox19.Text = wansv[2]; textBox20.Text = wansv[3]; textBox5.Text = wansv[4]; textBox6.Text = wansv[5]; textBox9.Text = wansv[6]; textBox10.Text = wansv[7]; textBox11.Text = wansv[8]; textBox12.Text = wansv[9]; textBox13.Text = wansv[4]; textBox14.Text = wansv[5]; textBox21.Text = Convert.ToString(t); textBox22.Text = Convert.ToString(zayav); } catch (Exception) { MessageBox.Show("Exception"); } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д