-1
我做了一個程序,它發送HTTP-webrequests。使用特定的IP來發送HTTP-webrequests
爲了保證這些請求被髮送,我希望能夠定義一個IP,通過它發送請求。 因此,如果默認退出不起作用,請求應通過另一個退出發送。
我試過使用IPEndPoint和套接字,但不知何故它不工作。
這是我到目前爲止的代碼
public Response ExecuteRequest(RequestData requestData, NetworkAddress exit) {
Tracer.Info("Versuche Request über HTTP abzusetzen.");
if (!PrepareIpEndPoint(Address, exit)) {
return null;
}
Address = new Uri(PlaceholderReplacer.ReplacePlaceholders(Address.ToString(), requestData));
return RequestExecutor.ExecuteRequest(Address);
}
private bool PrepareIpEndPoint(Uri url, NetworkAddress exit) {
Tracer.Debug(string.Format("Setze den IP-Endpoint auf{0}", exit));
var ipEndPoint = new IPEndPoint(IPAddress.Parse(exit.Address), 0);
var tempSocket = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
tempSocket.Bind(ipEndPoint);
tempSocket.Connect(ipEndPoint);
return tempSocket.Connected;
}
上面的代碼拋出SocketExceptions。
任何想法,不勝感激。
謝謝,喬希
綁定用於打開可以接受客戶端連接的服務器套接字。 Connect用於連接服務器套接字(作爲客戶端)。你不能在同一個套接字上使用它們。 (你是服務器或客戶端) –
'上面的代碼拋出SocketExceptions'發送完整的異常ToString。由於連接錯誤信息使得診斷錯誤變得困難。 – usr