Клиент-сервер - Удаленный хост принудительно разорвал существующее подключение - 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");
- }
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д