Socket端口监听无法关闭,那位高人给指点1and2
gjw 2007-04-27 01:25:21 public Socket mySocket;
public TcpListener listener;
public NetworkStream netStream;
public IPEndPoint IPE;
public Thread thread;
public byte[] ReveiceData = new byte[200];
public bool Control = true;
public void StartListening()
{
try
{
int Port = 4000;
IPAddress IP = IPAddress.Parse("192.168.1.27");
IPE = new IPEndPoint(IP, Port);
listener = new TcpListener(IPE);
listener.Start();
this.Text = "监听状态: 开启.";
Thread ListenThread = new Thread(new ThreadStart(clientConnect));
ListenThread.Start();
}
catch (Exception ListenError)
{ MessageBox.Show(ListenError.Message); }
}
public void clientConnect()
{
while (Control)
{
mySocket = listener.AcceptSocket();
if (mySocket.Connected)
{
this.Text = " 连接状态: 客户端建立连接.";
Thread thread = new Thread(new ThreadStart(Round));
thread.Start();
}
else this.Text = " 连接状态: 客户端断开连接.";
}
}
public void Round()
{
while (true)
{
netStream = new NetworkStream(mySocket);
netStream.Read(ReveiceData, 0, ReveiceData.Length);
this.BeginInvoke(new ShowDelegate(DataShow));
}
}
public delegate void ShowDelegate();
public void DataShow()
{
this.Text = "OK";
}
public void StopListen()
{
try
{
Control = false;
mySocket.Close();
listener.Stop();
this.Text = "监听状态: 关闭.";
}
catch (Exception StopError)
{ MessageBox.Show(StopError.Message); }
}
private void button1_Click(object sender, EventArgs e)
{
StopListen();
}
private void button2_Click(object sender, EventArgs e)
{
StartListening();
}
错误提示:未将对象引用设置到对象的实例,不明白???