Клиент-сервер - Удаленный хост принудительно разорвал существующее подключение - 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");
}
}
}
}
}