포트를 검사하고 스레드 풀을 사용하여 실습을하고 있는지 확인하기 위해 작은 앱을 실행하려고합니다. 콘솔 창은 번호를 묻고 1에서 X까지 포트를 스캔하고 열거 나 닫힌 포트를 표시합니다. 내 문제는 각 포트를 통과 할 때 때로는 조기에 중단된다는 것입니다. 하나의 숫자에서 멈추지도 않습니다. 꽤 무작위입니다. 예를 들어 200을 지정합니다. 콘솔이 각 포트를 스크롤하여 110에서 멈 춥니 다. 다음에 실행할 때 80에서 멈 춥니 다.포트 풀을 사용하여 포트 스캐닝
코드 모든 것을 제외하고 모든 변수가 선언 된 것으로 가정하십시오. 할까요. 첫 번째 부분은 Main에 있습니다.
static void Main(string[] args)
{
string portNum;
int convertedNum;
Console.WriteLine("Scanning ports 1-X");
portNum = Console.ReadLine();
convertedNum = Convert.ToInt32(portNum);
try
{
for (int i = 1; i <= convertedNum; i++)
{
ThreadPool.QueueUserWorkItem(scanPort, i);
Thread.Sleep(100);
}
}
catch (Exception e)
{
Console.WriteLine("exception " + e);
}
}
static void scanPort(object o)
{
TcpClient scanner = new TcpClient();
try
{
scanner.Connect("127.0.0.1",(int)o);
Console.WriteLine("Port {0} open", o);
}
catch
{
Console.WriteLine("Port {0} closed",o);
}
}
}
우리에게 몇 가지 코드를 보여주십시오 – unbeli
두 번째 @unbeli. –
@thenry 의견에서 코드를 사용하여 게시물을 수정하십시오. 서식을 지정하는 데 문제가있는 경우 ... 친절하게 물어 보면 누군가가 여러분을 위해 청소할 것이라고 확신합니다. – Rusty