2013-10-03 3 views
1

System.Net.HttpListener와 C# (Windows 7+, .Net 4.0)을 사용하여 프록시 서버를 작성했습니다. 어떤 프로세스가 요청을 보내고 있는지 확인하고 싶습니다 (보낸 사람은 동일한 컴퓨터에 있어야합니다)..Net HttpListener : 호출 프로세스를 식별하는 방법

HttpListenerContext context = GetContext(); 
HttpListenerRequest request = context.Request; 
int pid = 0; 
if (request.IsLocal) 
{ 
    int port = context.Request.RemoteEndPoint.Port; 
    pid = Winsock.MapLocalPortToProcessId(port - 1) 
} 
return pid; 

내가 요청 = 4 PID에서 유래 한 뺄 수없는 경우 :

그리운 @EricLaw 내가 포트 번호에서 1을 뺄 경우에만 ... 거의 http://blogs.msdn.com/b/fiddler/archive/2013/01/09/10138573.aspx하지만 작동 뭔가있다 , 시스템 프로세스.

뺄셈을해야합니까? 또는 요청을 보낸 프로세스를 확인하는 다른 방법이 있습니까?

답변

2

내 블로그에서 공유하는 코드는 정상적으로 작동합니다. 수백만 명의 사람들이 사용하는 Fiddler에서 사용됩니다.

전체 포트 목록을 덤프하고 진행 상황을 확인해야합니다. 아마도 context.Request.RemoteEndPoint.Port에서 반환 된 값에 문제가있을 수 있습니다.

+2

"알아요! 나는 피들러를 사용합니다. 사실 지금 사용하고 있습니다 ... 오 ..."피팅을 닫으면 문제가 해결되었습니다. :-) – stevieg

+0

Hehe ... 예, Fiddler를 실행할 때 브라우저 -> Fiddler-> Server에서 연결하고 있습니다. – EricLaw