2014-12-23 2 views
1

저는 C# 네트워크 프로그래밍에 초보자이며 다운로드 제한을 초과 한 경우 사용자가 인터넷에 연결하지 못하도록 제한하는 데 사용할 수있는 프록시 서버를 만들고 싶습니다.C#의 프록시 서버

내 현재 구성은 ---- 사용자 -> 프록시 서버 -> wifi 라우터 -> 인터넷입니다.

나는 모든 곳에서 검색하고 그 HTTP 프록시가 생성 될 수 있지만이 HTTPS 프록시를 지원하지 않는 C#으로 Trotinet 및 mentalis 같은

심지어 C#을 라이브러리를 HTTPS를 프록시를 생성하는 것은 매우 어렵다 발견했다.

하지만 HTTPS 연결을 지원하는 거의 프록시 같은 JAVA에는 많은 라이브러리가 있다는 것을 알게되었습니다.

그래서 C#에서 완전한 기능의 프록시를 만들 수 있습니까? 또는 Java로 전환을 시도해야합니까?

하나 더 질문드립니다. 내가 간단한 TCP 클라이언트를 만들 수 있습니다 networkstearm 읽기 및 그 헤더 또는 아무것도 읽을 필요없이 와이파이 라우터로 그 스트림을 전달,이 방법은 작동합니까? 그냥 추측, 멍청한 질문에 대한 미안.

감사

+0

, 그래 당신은하여 TcpClient라는 클래스를 사용하여이 작업을 수행 할 수 있으며 GetStream() 메소드를 연관된. 리스너 인 AcceptClient()를 작성하여 별도의 클라이언트를 대상에 연결하고 수신 스트림에서 수신 한 모든 것을 대상 스트림으로 전달하십시오. 적어도 하나의 헤더 패킷을 처리해야하므로 목적지를 알아야합니다. 여기에 TcpListener 및 TcpClient에 대한 자습서가 있습니다. http://tech.pro/tutorial/704/csharp-tutorial-simple-threaded-tcp-server –

+0

제가 한 일이지만, 직면 한 문제는 TCPClient가 포트 번호가 필요하다는 것입니다. 와이파이 라우터에 포트 번호가 있습니까? Google에서 검색 중이며 아직 내 라우터의 포트 번호를 찾을 수 없습니다. – Sam

+1

네트워크와 TCP가 어떻게 작동하는지 오해 할 수도 있습니다. 네트워크가 사용자를 대신하여 라우팅을 처리합니다. 다이어그램에서 '인터넷'으로 설명 된 지점에서 대상에 연결하기 만하면됩니다. –

답변

2

첫 번째 질문에 대한 답 : 예, 당신이 (피들러 유사) C#을 전체 기능 HTTPS 프록시를 생성 할 수 있습니다. Java로 변경할 필요가 없습니다. 테스트 목적으로 피들러 코어를 사용할 수 있습니다. Fiddler 코어는 C#으로 작성된 완전한 HTTPS 프록시입니다. 시간과 지식이 있다면, 바이올린 코어에서 리플렉터를 사용하여 리버스 엔지니어링을 수행하고 구현에 대한 아이디어를 얻으십시오.

Trotinet의 마지막 커밋에는 HTTPS 통과 구현이 수줍어합니다. 따라서 https 데이터를 해독하지 않으려면 Trotinet을 선택하는 것이 좋습니다. 당신이 TCP 클라이언트를 생성하고 그 흐름을 읽을 수 있는지 여부에 대한 질문에 대한 대답에서

-Kumar는