A
Anders Eriksson
I have this code, which I pretty much copied from the net.
My problem is that I cant stop the loop in ListenForClients.
I set Stop=true; but nothing happens...
Please help!
// Anders
--
in my form1.cs
TCPServer server = null;
In a menu handler
private void startToolStripMenuItem_Click(object sender, EventArgs e)
{
server = new
}
private void stopToolStripMenuItem_Click(object sender, EventArgs e)
{
server.Stop = true;
}
class TCPServer
{
public volatile bool Stop = false;
private TcpListener tcpListener;
private Thread listenThread;
private TcpClient tcpClient;
private int port;
public TCPServer()
{
port = Properties.Settings.Default.port;
this.tcpListener = new TcpListener(IPAddress.Any, port);
this.listenThread = new Thread(new ThreadStart(ListenForClients));
this.listenThread.Start();
}
private void ListenForClients()
{
try
{
this.tcpListener.Start();
}
catch (SocketException e)
{
TRACE(e.Message);
throw;
}
while (!Stop)
{
//blocks until a client has connected to the server
TcpClient client = this.tcpListener.AcceptTcpClient();
//create a thread to handle communication
//with connected client
Thread clientThread = new Thread(new
ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
// close listener
this.tcpListener.Stop();
}
....
}
My problem is that I cant stop the loop in ListenForClients.
I set Stop=true; but nothing happens...
Please help!
// Anders
--
in my form1.cs
TCPServer server = null;
In a menu handler
private void startToolStripMenuItem_Click(object sender, EventArgs e)
{
server = new
}
private void stopToolStripMenuItem_Click(object sender, EventArgs e)
{
server.Stop = true;
}
class TCPServer
{
public volatile bool Stop = false;
private TcpListener tcpListener;
private Thread listenThread;
private TcpClient tcpClient;
private int port;
public TCPServer()
{
port = Properties.Settings.Default.port;
this.tcpListener = new TcpListener(IPAddress.Any, port);
this.listenThread = new Thread(new ThreadStart(ListenForClients));
this.listenThread.Start();
}
private void ListenForClients()
{
try
{
this.tcpListener.Start();
}
catch (SocketException e)
{
TRACE(e.Message);
throw;
}
while (!Stop)
{
//blocks until a client has connected to the server
TcpClient client = this.tcpListener.AcceptTcpClient();
//create a thread to handle communication
//with connected client
Thread clientThread = new Thread(new
ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
// close listener
this.tcpListener.Stop();
}
....
}