
tcplistener怎么监听本地ip端口啊?c# 100
我用c#做了一个局域网p2p的简易聊天器,大致思想是监听本地端口,然后向目标ip端口发送数据。但是点完“开始监听”按钮,程序就未响应了。这是界面这是开始监听按钮代码:pr...
我用c#做了一个局域网p2p的简易聊天器,大致思想是监听本地端口,然后向目标ip端口发送数据。
但是点完“开始监听”按钮,程序就未响应了。
这是界面
这是开始监听按钮代码:
private void button1_Click(object sender, EventArgs e) { try { IPAddress ip = IPAddress.Parse("192.168.1.104"); //这是本地的ip tcplistener = new TcpListener(ip,8888); tcplistener.Start(); label3.Text = "开始监听"; while (true) { tcpclient = tcplistener.AcceptTcpClient(); ns = tcpclient.GetStream(); byte[] buffer = new byte[1024]; int bytesread = ns.Read(buffer, 0, 1024); string msg = Encoding.GetEncoding("GB2312").GetString(buffer); this.richTextBox1.Text = msg; } } catch (System.Security.SecurityException) { StopListener(); MessageBox.Show("监听过程中出现错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception) { StopListener(); label3.Text = "已停止监听"; } }这是我的工程文件
http://pan.baidu.com/s/1bn0CLlH 展开
但是点完“开始监听”按钮,程序就未响应了。
这是界面
这是开始监听按钮代码:
private void button1_Click(object sender, EventArgs e) { try { IPAddress ip = IPAddress.Parse("192.168.1.104"); //这是本地的ip tcplistener = new TcpListener(ip,8888); tcplistener.Start(); label3.Text = "开始监听"; while (true) { tcpclient = tcplistener.AcceptTcpClient(); ns = tcpclient.GetStream(); byte[] buffer = new byte[1024]; int bytesread = ns.Read(buffer, 0, 1024); string msg = Encoding.GetEncoding("GB2312").GetString(buffer); this.richTextBox1.Text = msg; } } catch (System.Security.SecurityException) { StopListener(); MessageBox.Show("监听过程中出现错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception) { StopListener(); label3.Text = "已停止监听"; } }这是我的工程文件
http://pan.baidu.com/s/1bn0CLlH 展开
展开全部
TcpListener start 是阻塞的吧 你在主线程里面这样做当然会ANR
追问
那要怎么改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询