2010-06-27 5 views
3

.NET C#에서 프록시 서버를 통해 소켓을 여는 방법은 무엇입니까?.NET C#에서 프록시 서버를 통해 소켓을 여는 방법은 무엇입니까?

그래서 내 머쉰에 소켓을 열었습니다. pe와 프록시 서버 간에는 아무런 단서가 없습니다. 프록시 서버에 연결했습니다. 이제 어떻게 프록시 서버 서버가 프록시 서버에 의해 리다이렉트되거나 전송되는지를 알고있는 글로벌 IP 세상의 요청을 어떻게 내릴 수 있습니까?

모든 libs 블로그 기사? 제발 도와주세요

+1

어떤 종류의 프록시입니까? 양말? HTTP? FTP? 엑스? 텔넷? –

+0

SOCKS 및 HTTP. – Rella

답변

6

뭔가를 '통해'뭔가를 통해 '열어'소켓을 열 수 없습니다. 프록시 서버 (나는 당신이 'CONNECT'명령을 지원하는 HTTP 프록시에 대해 이야기하고 있다고 가정한다)와 동일하다 : 먼저 연결을 연 다음 프로토콜을 사용하여 'CONNECT'명령을 사용하여 프록시 연결을 전달한다. .

그래서 다음 단계를 수행해야합니다 프록시

  1. 에 연결합니다. 응답의 라인
  2. 문제 CONNECT Host:Port HTTP/1.1<CR><LF>
  3. 문제 <CR><LF>
  4. 기다립니다. HTTP/1.X 200이 있으면 연결에 성공한 것입니다.
  5. 빈 줄을받을 때까지 추가 답변을 읽어보십시오.
  6. 이제 프록시를 통해 외부 세계에 연결됩니다. 원하는 데이터 교환을 수행하십시오.
+0

그래서 내 머쉰에 소켓을 열었습니다. pe와 프록시 서버 간에는 아무런 단서가 없습니다. 프록시 서버에 연결했습니다. 이제 어떻게 프록시 서버 서버가 프록시 서버에 의해 리다이렉트되거나 전송되는지를 알고있는 글로벌 IP 세상의 요청을 어떻게 내릴 수 있습니까? – Rella

+0

2 단계에서 CONNECT ...라고 말하면 원격 호스트에 대한 연결을 여는 중입니다. 당신은 그것에 연결하고 반대는 연결하지 않는다. 그리고 당신이 연결되었을 때 - 6 단계 - 원격쪽에는 원격 쪽이 당신에게 데이터를 보내기 위해 사용할 수있는 열린 소켓이 있습니다. – Haspemulator

+0

당신은''와 함께 CONNECT를 보내거나 2 패킷을 보내야합니까? – SSpoke

관련 문제