在线等,着急啊。。。关于局域网qq关闭窗体后,为什么进程不结束的问题
关闭窗体后,任务管理器里面还有MyQQ的进程。到底是怎么回事啊。。。namespace MyQQ
{
public partial class Form1 : Form
{
private IPEndPoint ServerEndPoint = null;
private UdpClient UDP_client = new UdpClient();
private UdpClient UDP_server = new UdpClient();
private System.Threading.Thread theUdp;
private delegate void DataArrivaldelegate(byte[] Data, System.Net.IPAddress Ip, int Port);
private int localPort = 11000;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Listener();
}
private void Send_Click(object sender, EventArgs e)
{
IPAddress ip = IPAddress.Parse(IPtextbox.Text);
if (IPtextbox.Text.Length <= 0)
{
MessageBox.Show("请输入IP地址!");
IPtextbox.Focus();
return;
}
string port = "11000";
byte[] Data = Encoding.Unicode.GetBytes(TextIn.Text);
try
{
IPEndPoint server = new IPEndPoint(ip, int.Parse(port));
UDP_client.Send(Data, Data.Length, server);
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
TextOut.SelectionStart = 0;
if (TextOut.Text.Length > 0)
TextOut.AppendText("\r\n");
TextOut.AppendText("");
TextOut.AppendText("" + DateTime.Now.ToString());
TextOut.AppendText("\r\n");
TextOut.ScrollToCaret();
TextOut.SelectedRtf = TextIn.Rtf;
TextIn.Clear();
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (UDP_server != null)
UDP_client.Close();
if (theUdp != null)
{
Thread.Sleep(30);
theUdp.Abort();
}
}
protected void Listener()
{
ServerEndPoint = new IPEndPoint(IPAddress.Any, localPort);
if (UDP_server != null)
UDP_server.Close();
UDP_server = new UdpClient(localPort);
UDP_server.Client.ReceiveBufferSize = 10000;
UDP_server.Client.SendBufferSize = 10000;
try
{
theUdp = new Thread(new ThreadStart(GetUDPData));
theUdp.Start();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
private void GetUDPData()
{
while (true)
{
try
{
byte[] Data = UDP_server.Receive(ref ServerEndPoint);
if (Data.Length > 0)
{
DataArrivaldelegate outdelegate = new DataArrivaldelegate(DataArrival);
this.BeginInvoke(outdelegate, new object[] { Data, ServerEndPoint.Address, ServerEndPoint.Port });
}
Thread.Sleep(0);
}
catch { }
}
}
private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程
{
TextOut.SelectionStart = 0;
if (TextOut.Text.Length > 0)
TextOut.AppendText("\r\n");
TextOut.AppendText("" + DateTime.Now.ToString());
TextOut.AppendText("\r\n");
TextOut.AppendText(Encoding.Unicode.GetString(Data));
TextOut.ScrollToCaret();
}
}
} --------------------编程问答-------------------- application.exit --------------------编程问答-------------------- 还说什么每个套接字地址(协议/网络地址/端口)只允许使用一次。。
本人太菜了,咋整哦??? --------------------编程问答-------------------- 试过application.exitz(),没用 --------------------编程问答-------------------- UDP_server = new UdpClient(localPort);
好像就是这里错的,调试的时候这里显黄色,说:::还说什么每个套接字地址(协议/网络地址/端口)只允许使用一次
补充:.NET技术 , .NET Framework