示例#1
0
 public static TcpClientService GetService(string ip, int port)
 {
     if (_timerServiceMaintain == null)
     {
         _timerServiceMaintain          = new Timer();
         _timerServiceMaintain.Interval = 1000;
         _timerServiceMaintain.Elapsed += _timerServiceMaintain_Elapsed;
         _timerServiceMaintain.Enabled  = true;
     }
     //为什么加锁,会对共享的_dicServicePool进行读写
     lock (_lock)
     {
         IPEndPoint       point   = new IPEndPoint(IPAddress.Parse(IPFix(ip)), port);
         TcpClientService service = null;
         if (_dicServicePool.ContainsKey(point))
         {
             var services = _dicServicePool[point];
             foreach (var e in services)
             {
                 if (e.IsBusy == false)
                 {
                     service = e;
                 }
             }
             //未找到空闲
             if (service == null)
             {
                 service = new TcpClientService(IPFix(ip), port, _timeout);
                 service.Connect();
                 services.Add(service);
                 _dicServicePool[point] = services;
             }
         }
         else
         {
             List <TcpClientService> services = new List <TcpClientService>();
             service = new TcpClientService(IPFix(ip), port, _timeout);
             service.Connect();
             services.Add(service);
             _dicServicePool[point] = services;
         }
         service.IsBusy      = true;
         service.LastUseTime = DateTime.Now;
         return(service);
     }
 }
示例#2
0
 public OEOCommService(string ip, int port, int cardNum)
 {
     Client = new TcpClientService(ip, port);
     Client.Connect();
     CardNumber = cardNum;
 }
示例#3
0
 public NMUCommService(string ip, int port)
 {
     Client = new TcpClientService(ip, port);
     Client.Connect();
 }