피들러와 비슷한 기능을 구현하고 싶습니다.80 http 포트 리스너 구현
나는이 개 솔루션을 시도 :
http-listener에
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://*:80/");
listener.Start();
가 사용 중이기 때문에 시작() 나는 오류 System.Net.HttpListenerException "프로세스가 파일을 액세스 할 수 없습니다 얻을 실행되면 또 다른 프로세스 "는 포트 80에서 IIS 또는 기타 애플리케이션을 수신하는 다른 애플리케이션이 있음을 의미합니다.
소켓
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 80);
// Create a TCP/IP socket.
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
// Bind the socket to the local endpoint and listen for incoming connections.
try
{
listener.Bind(localEndPoint);
listener.Bind()가 실행되면 // ..... 나는 System.Net.Sockets.SocketException (0X80004005) 수 : 각 소켓 주소를 하나만 사용 (프로토콜을/network address/port)는 일반적으로 포트 80에서 수신 대기하는 다른 응용 프로그램과 동일한 것을 의미합니다.
따라서 Fiddler는 이러한 문제없이 포트 80을 어떻게 수신합니까? HTTP 프로토콜을 구현해야하는 소켓처럼 하위 수준 클래스 대신 상위 수준이기 때문에 HttpListener와 같은 클래스를 사용하는 것이 좋습니다.
맞습니다. 들어오는 연결에 대한 코드를 작성했습니다. Fiddler와 같은 발신 연결에 대한 코드를 작성하고 싶습니다. 어떻게 할 수 있는지 실마리를 줄 수 있습니까? –
이 SO 스레드에서 시작해야하는 프록시를 만드는 방법에 대한 좋은 정보가 있습니다. http://stackoverflow.com/questions/226784/how-to-create-a-simple-proxy-in-c – BrokenGlass