Witam mam dosyć nietypowy problem z aplikacją sieciową. Aplikacja ma pełnić rolę serwera,która ma przyjmować wiadomości od innej aplikacji i wysyłać potwierdzenie odebrania wiadomości.Problem polega na tym ,że kompilator nie chce wykonać fragmentu kodu(nie wyskakuja żadne błedy program automatycznie sie zawiesza) ,który jest odpowiedzialny za akceptacje klienta.Jeżeli któs mógłby mi wytłumaczyć przyczynę problemu byłbym bardzo wdzięczny.
namespace Aplikacjaserwer
{
public partial class Form1 : Form
{
private TcpListener serwer;
private TcpClient NewClient;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
try
{
int port = System.Convert.ToInt16(numericUpDown1.Value);
TcpListener serwer = new TcpListener(IPAddress.Any, port);
serwer.Start();//Wlaczenie serwera
serwer.Server.Listen(1);
listBox1.Items.Add("Serwer zostal uruchomiony");
//TcpClient NewClient = serwer.AcceptTcpClient();// -bez tego fragmentu kodu program sie nie zawiesza
listBox1.Items.Add("Polaczono z "+serwer.LocalEndpoint);
}
catch (Exception ex)
{
listBox1.Items.Add("Błąd inicjacji serwera!");
MessageBox.Show(ex.ToString(),"Błąd");
}
}
public void button3_Click(object sender, EventArgs e)
{
try
{
NewClient.Close();
serwer.Stop();
listBox1.Items.Add("Serwer wyłączony");
}
catch (Exception ex)
{
listBox1.Items.Add("BLAD!!");
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
byte[] b = new byte[100];
int k = serwer.Server.Receive(b);
for (int i = 0; i < k; i++)
listBox1.Items.Add(Convert.ToChar(b[i]));
ASCIIEncoding asen = new ASCIIEncoding();
serwer.Server.Send(asen.GetBytes("Wiadomosc zostala otrzymana"));//Acknowledgement
listBox1.Items.Add("Wyslano potwierdzenie");
}catch(Exception ex)
{
Console.WriteLine("Error..... " + ex.StackTrace);
}
}
}
}