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); } }
public OEOCommService(string ip, int port, int cardNum) { Client = new TcpClientService(ip, port); Client.Connect(); CardNumber = cardNum; }
public NMUCommService(string ip, int port) { Client = new TcpClientService(ip, port); Client.Connect(); }