C#中这坑爹的tcplistener类怎么用

tcplistener类目前给出了三个构造方法:1,TcpListener(Int32)2,TcpListener(IPEndPoint)3,TcpListener(IP... tcplistener类目前给出了三个构造方法:
1,TcpListener(Int32)
2,TcpListener(IPEndPoint)
3,TcpListener(IPAddress, Int32)
方法一:最好用,但被标注已过时,杯具了;
方法二:msdn给出的例子如下
IPAddress ipAddress = Dns.Resolve(Dns.GetHostName()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 11000);
但DNS类的Resolve方法也被标已过时,还是杯具了
方法三:msdn给出的例子如下
IPAddress ipAddress = Dns.Resolve("localhost").AddressList[0];
TcpListener tcpListener = new TcpListener(ipAddress, 13);
原因如方法二,杯具。。。

网上方法:
IPHostEntry host = Dns.GetHostEntry(hostName);
IPAddress MyIP = host.AddressList[0];
TcpListener listener = new TcpListener(MyIP,13000);
这种方法用个很要命的问题,AddressList中可能有多个,而且在同一台机子上不同时候都可能不一样,其他模块动不动就连不上了。。。。杯悲啊!!

各位大虾,有啥万全的解决方法没,小弟拜谢了!!
没多少财富值了,大家将就下,谢谢了
展开
 我来答
liuye6569
2011-05-26 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:91.1万
展开全部
提示过时你可以直接无视他,该怎么执行还照旧。

IPHostEntry host = Dns.GetHostEntry(hostName);
IPAddress MyIP = host.AddressList[0];
TcpListener listener = new TcpListener(MyIP,13000);

不可以写死吗? 如果只是本机的话你可以直接写127.0.0.1,如果是公网的话,那你必须写死了。
追问
写127.0.0.1有一个问题,这样开的端口只在本机能访问

现在这东西要在一个机房局域网里用,程序也是一个界面呈现式的,可能在不同电脑上使用,写死也不是办法吧
追答
哦,TcpListener 是服务端用的吧?是监听的,你只需要监听某个端口就可以,不管从你电脑上哪个IP连进来的都可以接受。
如果非要用3,TcpListener(IPAddress, Int32) 的话,你IPAddress可以这样写
IPAddress MyIP = IPAddress.Any;
TcpListener listener = new TcpListener(MyIP,13000);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式