동일한 URL에 2 개의 웹 요청을 보내야하지만 다른 소스 IPEndpoints에서 보낼 필요가있는 응용 프로그램이 있습니다.ServicePoint가 로컬 IPEndpoint에 고유하지 않습니다.
Dim myWebRequest As Net.HttpWebRequest = Net.WebRequest.Create(MyUrl)
myWebRequest.ServicePoint.BindIPEndPointDelegate = MyBindIPEndPointFunction
위임 기능 MyBindIPEndPointFunction가 호출되고 나는 그것이 올바른 IPEndPoint로, 모든 것이 잘 작동 제공 :
이
처럼 뭔가를 수행하여 첫 번째 연결로 충분히 간단 할 수 있습니다.두 번째 요청에서이 URL에 대한 ServicePoint가 이미 있으므로 대리자 함수 MyBindIPEndPointFunction이 호출되지 않으므로 다른 IPEndpoint에 바인딩하는 두 번째 웹 요청을 알릴 방법이 없습니다.
웹 요청이 SSL이기 때문에 SSL을 처리해야하므로 Net.TcpClient 객체를 대신 사용하는 것은 쉽지 않습니다.
이상적으로 나는 HttpWebRequest를 강제로 일반 연결을 만들고 일단 완료하면 ServicePoint를 사용하지 않고이 방법을 사용하는 것이 좋습니다. 가능합니까? 또한이 스레드를 모두 안전하고 비 차단으로 만들어서 많은 스레드 (현재는 모두 동일한 ServicePoint를 사용하는 스레드)에서 요청을 실행할 수 있습니다.
감사합니다. 당신은하지 않았다 경우
내가이 질문은 조금 오래 알고 같은 URL을 두를 만들 수 있습니다, 그냥 생각 나는 potentional 대답을 추가 아직 해결책을 찾으십시오 – Jim
답장을 보내 주셔서 감사합니다 Jim. 결국 나는 TCPClient를 작성하고 SSLStream 객체를 사용했습니다. (나는 존재하지 않았습니다.) 작동하는 것이 있습니다. 그래도 아이디어가 재미있어 보입니다. – Panafe
문제 없습니다. 희망은 그것이 미래에 도움이됩니다. – Jim