.NET HTTP Proxy with Socket HTTP Tunnel

This project received 3 bids from talented freelancers with an average bid price of $435 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
$250 - $750 USD
Total Bids
Project Description

We need to have a built the following in C#

- HTTP Proxy server
- HTTP Socket Tunnel (server+client)

Requirements and usage:
- Browser/Software (B) with proxy configured, runs on our servers and is already built.
- Proxy server (P) runs on our servers
- Http Tunnel server (TS) runs on our servers
- Http Tunnel client (TC) runs on our customers PC (behind a firewall)
- Webserver (W) the request end-point/server
- Every Http request from our servers that are configured to use the TC as a proxy should be routed via the B->P->TS->TC->W, and the HTTP response should follow the W->TC->TS->P->B path.
- The TS should keep a track of the connected TC's and ask it to lunch new sockets if needed.
- The P/TS should return a HTTP relevant error like "504 Gateway Timeout", or similar, if TC is not connected or connection is lost.
- The TC should connect to the TS using a "command/com" port.
- After the TC connects the TS should identify the unique client and, send a that will tell the TC to open a second socket, where the TC will listen for HTTP requests.
- Each TC has to be uniquely identified so the HTTP requests can be sent using the correct endpoint TC.
- Each TC should have a least one(1) socket ready that is not in use, and is just waiting for http requests to process.
- Port numbers should be configurable in bot P, TS and TC
- The P, TS and TC should be streaming sockets/proxies to speed up the requests/responses.
- It's critical/important that it is the TC that opens connections to the TS, because of firewall, subnet, public-ip issues.
- The B should use a HTTP header to identify which TC to send the request to, The TS, TC or both should remove this header before sending the request to W.
- The TC should send the HTTP requests like an anonymous proxy, meaning that the W should not be able to see any info about the HTTP request origin, except of TC.
- The P, TS and TC should work in high stress environment, with many requests passing, so threading, performance and cleanup of threads/sockets and memory is important.

We have done some research and found the following open source C# HTTP Proxy ([url removed, login to view]), we have also done a little testing to see if the project is possible, and concluded that it is possible to do.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online