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 展开
1个回答
展开全部
TcpListener start 是阻塞的吧 你在主线程里面这样做当然会ANR
追问
那要怎么改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询