C# 多网卡 Server Listen

时间:2022-05-30 16:09:18 

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()); 

标签:C#,多网卡,Server,Listen
0
投稿

猜你喜欢

  • Android开发之自定义加载动画详解

    2023-07-27 01:41:05
  • android通过google api获取天气信息示例

    2023-10-18 15:44:22
  • Flutter实现矩形取色器的封装

    2023-06-19 04:08:47
  • 解决IDEA无法下载maven依赖的问题

    2023-12-05 17:06:59
  • Java中String类常用类型实例总结

    2023-07-06 19:15:43
  • 使用IDEA搭建一个简单的SpringBoot项目超详细过程

    2022-07-19 11:43:58
  • Java实现计算器设计

    2023-08-18 13:36:54
  • 浅谈Java由于不当的执行顺序导致的死锁

    2022-08-05 22:05:33
  • 详解C# Socket异步通信实例

    2022-08-27 14:27:22
  • Android开发之图片压缩工具类完整实例

    2023-07-02 10:22:08
  • Java结构型设计模式中建造者模式示例详解

    2023-04-24 13:37:31
  • Java中方法名称和泛型相同的用法示例

    2023-08-12 03:18:55
  • jbuilder2006连接sqlserver2000的方法

    2022-08-21 14:20:09
  • Java Web学习之Cookie和Session的深入理解

    2022-10-28 14:47:10
  • Android实现截屏并保存操作功能

    2021-12-16 19:45:16
  • c#中Invoke与BeginInvoke的用法及说明

    2023-06-10 12:39:49
  • Spring boot 连接多数据源过程详解

    2023-11-28 12:09:51
  • Android自定义View实现水面上涨效果

    2023-03-02 22:13:06
  • iOS获取AppIcon and LaunchImage's name(app图标和启动图片名字)

    2022-01-11 02:39:14
  • Java Exception 捕获和显示实例详解

    2022-07-05 22:41:09
  • asp之家 软件编程 m.aspxhome.com