C# 多网卡 Server Listen
发布日期:2021-06-30 19:11:30
浏览次数:2
分类:技术文章
本文共 1434 字,大约阅读时间需要 4 分钟。
VC和BCB中做一个Server的监听程序,只需要指定端口,然后监听(Listen)就行了.在C#找不到这个函数了,慢慢看MSDN,怎么需要指定IP和Port才能监听,那么多网卡的机器应该怎么写程序呢?下面的程序可以解释怎么去做. TcpListener 类别会提供简易的方法,用以在封锁的同步模式中聆听 (Listen) 和接受输入的连接要求。您可以使用 TcpClient 或 Socket 来连接 TcpListener 。使用 IPEndPoint 、本机 IP 地址和连接端口编号,或者就只用连接埠编号来建立 TcpListener 。如果您想要基础服务供货商为您指派那些值,请指定 Any 给本机 IP 地址和 0 给本机连接埠编号。如果选择要这样做,您可以使用 LocalEndpoint 来识别指派的信息。 使用 Start 方法开始聆听输入的连接要求。 Start 将会让输入的连接进入队列等候,一直到不是呼叫了 Stop 方法,就是已经将 MaxConnections 排入队列为止。使用 AcceptSocket 或 AcceptTcpClient ,从输入的连接要求队列取出连接。这两个方法将会封锁。如果想要避免封锁,您可以先使用 Pending 方法来判断连接要求是否可在队列中取得。 呼叫 Stop 方法关闭 TcpListener 。 这个建构函式可以让您指定要聆听输入连接尝试的本机 IP 地址和连接端口编号。使用这个建构函式之前,您必须使用所需的本机 IP 地址和连接端口编号来建立 IPEndPoint 。将这个 IPEndPoint 当作 localEP 参数传递给建构函式。 如果您不在乎要指派哪个本机地址,则可使用 IPAddress.Any 做为地址参数以建立 IPEndPoint ,而基础服务供货商将会指派最适当的网络地址。如果您有多个网络接口,这可能有助于简化应用程序。如果您不在乎要使用哪个本机连接埠,则可以指定 0 做为连接埠编号来建立 IPEndPoint 。在这种情况下,服务供货商将会指派介于 1024 和 5000 之间的可用连接埠编号。如果您使用这个途径,则可以藉由使用 LocalEndpoint 属性来探索什么局域网络地址和连接端口编号已经被指派。 呼叫 Start 方法以开始聆听输入的连接尝试。 IPEndPoint 类别包含主机以及应用程序连接到主机服务所需的通讯端口信息。藉由结合主机的 IP 地址和服务的通讯端口编号, IPEndPoint 类别形成连接至服务的连接点 (Connection Point)。 [C#] //Creates an instance of the TcpListener class by providing a local endpoint. IPAddress ipAddress = Dns.Resolve(Dns.GetHostName()).AddressList[0]; IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 11000); try{ TcpListener tcpListener = new TcpListener(ipLocalEndPoint); } catch ( Exception e ){ Console.WriteLine( e.ToString()); }转载地址:https://linuxstyle.blog.csdn.net/article/details/1539863 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月27日 21时00分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
word文档中实现目录索引中标题加粗,前导符和页码不加粗
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
2019-04-30
《知识图谱》阅读笔记(七)
2019-04-30
《知识图谱》阅读笔记(九)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
超越白皮书8:穿云而过的闪电网络
2019-04-30
AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建
2019-04-30
JS中document对象和window对象有什么区别
2019-04-30
【python练习题】遍历1
2019-04-30
【matlab】显示图片且下方显示文字
2019-04-30
关于greater<int>以及类模板的一些理解
2019-04-30
对于时间复杂度的通俗理解
2019-04-30
如何输入多组数据并输出每组数据的和?
2019-04-30
基于CentOS 7的Linux常用命令行命令
2019-04-30