84 lines
2.6 KiB
C#
84 lines
2.6 KiB
C#
//// /**
|
|
//// * File: TCP.cs
|
|
//// * Author: haraldwolff
|
|
//// *
|
|
//// * This file and it's content is copyrighted by the Author and / or copyright holder.
|
|
//// * Any use wihtout proper permission is illegal and may lead to legal actions.
|
|
//// *
|
|
//// *
|
|
//// **/
|
|
//using System;
|
|
//using System.Net.Sockets;
|
|
//namespace ln.skyscanner.crawl.service
|
|
//{
|
|
// public class TCP : CrawlService
|
|
// {
|
|
// public int[] Ports { get; }
|
|
|
|
// public TCP(int[] ports)
|
|
// :base("tcp")
|
|
// {
|
|
// Ports = ports;
|
|
// }
|
|
|
|
// public override bool Check(Crawl crawl)
|
|
// {
|
|
// if (!crawl.CheckRequiredOption("ping"))
|
|
// return false;
|
|
|
|
// int n = 0;
|
|
// foreach (int port in Ports)
|
|
// {
|
|
// crawl.UpdateState(this, (double)n / (double)Ports.Length);
|
|
|
|
// try
|
|
// {
|
|
// using (TcpClient tcpClient = new TcpClient())
|
|
// {
|
|
// IAsyncResult ar = tcpClient.BeginConnect(crawl.Host.PrimaryIP.ToString(), port, null, null);
|
|
// System.Threading.WaitHandle wh = ar.AsyncWaitHandle;
|
|
|
|
// try
|
|
// {
|
|
// if (!ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1), false))
|
|
// {
|
|
// tcpClient.Close();
|
|
// throw new TimeoutException();
|
|
// }
|
|
|
|
// tcpClient.EndConnect(ar);
|
|
// }
|
|
// catch (Exception)
|
|
// {
|
|
// throw;
|
|
// }
|
|
// tcpClient.Close();
|
|
|
|
// crawl.Host.SetHint(String.Format("tcp.{0}", port), true);
|
|
// }
|
|
// }
|
|
// catch (Exception)
|
|
// {
|
|
// crawl.Host.SetHint(String.Format("tcp.{0}", port), false);
|
|
// }
|
|
|
|
// }
|
|
// return true;
|
|
// }
|
|
|
|
// public override bool HostProvidesOption(Crawl crawl,params object[] parameters)
|
|
// {
|
|
// if (parameters.Length == 0)
|
|
// return false;
|
|
|
|
// foreach (object oport in parameters)
|
|
// {
|
|
// int port = (int)oport;
|
|
// if (!crawl.Host.GetHint(String.Format("tcp.{0}", port),false))
|
|
// return false;
|
|
// }
|
|
// return true;
|
|
// }
|
|
// }
|
|
//}
|