首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

问个关于UDP断口处理的有关问题

2012-01-03 
问个关于UDP断口处理的问题namespaceMicrosoft.Rfid.Reader.Driver.Acme{internalclassUdpTransport{priva

问个关于UDP断口处理的问题
namespace   Microsoft.Rfid.Reader.Driver.Acme
{
        internal   class   UdpTransport
        {
                private   UdpClient   client;
                private   UdpClient   asynClient;                
                private   ILogger   logger;
                private   AcmeReaderLayer   readerLayer;              
                private   ManualResetEvent   asynEvent;
                private   const   int   clientPort   =   4567;
                private   const   int   asynClientPort   =   4568;
                private   static   string   localHost   =   Dns.GetHostName();
                private   Thread   asynReceiveThread;
                private   string   host;
                private   int   port;
                public   UdpTransport()
                {  
               
                }
                public   void   Init(TcpTransportSettings   settings,ILogger   logger,   AcmeReaderLayer   readerLayer)
                {
                        lock   (this)
                        {
                                try
                                {
                                        this.logger   =   logger;
                                        this.readerLayer   =   readerLayer;
                                        this.host   =   settings.Host;
                                        this.port   =   settings.Port;    
                                        asynEvent   =   new   ManualResetEvent(true);
                                        IPAddress   ip   =   Dns.GetHostAddresses(localHost)[0];


                                        this.client   =   new   UdpClient(new   IPEndPoint(ip,   clientPort));
                                        this.asynClient   =   new   UdpClient(new   IPEndPoint(ip,   asynClientPort));
                                }
                                catch   (Exception   ex)
                                {
                                        logger.Error( "UdpTransport   Contrusture   Error: "   +   ex.ToString());
                                }
                        }

  private   const   int   clientPort   =   4567;
                private   const   int   asynClientPort   =   4568;   这两个断口,现在是固定的
现在想这的常数值,变位动态可变的

在下面的两句里被引用
this.client   =   new   UdpClient(new   IPEndPoint(ip,   clientPort));
                                        this.asynClient   =   new   UdpClient(new   IPEndPoint(ip,   asynClientPort));
要问的问题是:
在MS的BIZTALK   RFID   中,每加一设备,就要走到INIT()里
而每个设备要两个端口,如何实现端口不重复?
描述:
    如有一个设备
A   INTI   占   5000   和5001

而再加入个设备B   则要分配其他的两个端口号,且这两个端口要未被使用。

加C   。。。
端口不允许重复   如何搞啊?



[解决办法]
我对你的这方面的业务不太了解..

对于如何防止重复?

那就把用过的端口号存储起来,为一个新设备分配端口号的时候,与存储的已分配的端口号作一下比较,保证不重复就行了..

不知道是不是我的理解有误..

热点排行